{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import plotly.express as px\n",
    "import mytools"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from pyreadstat import pyreadstat\n",
    "from pandas.api.types import CategoricalDtype\n",
    "import scipy.stats as stats\n",
    "import statsmodels.api as sm\n",
    "import plotly.express as px\n",
    "import mytools"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "#数据清理\n",
    "df1 = pd.read_excel(R\"乡村振兴调查问卷.xlsx\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>序号</th>\n",
       "      <th>提交答卷时间</th>\n",
       "      <th>所用时间</th>\n",
       "      <th>来源</th>\n",
       "      <th>来源详情</th>\n",
       "      <th>来自IP</th>\n",
       "      <th>您的性别</th>\n",
       "      <th>您的年龄</th>\n",
       "      <th>您的文化程度</th>\n",
       "      <th>您主要从事的行业</th>\n",
       "      <th>您认为乡村振兴带来的改变有哪些</th>\n",
       "      <th>您认为乡村振兴较侧重于哪一方面</th>\n",
       "      <th>您认为乡村振兴后有哪些基础设施得到改善</th>\n",
       "      <th>您村公共服务方面有哪些改进</th>\n",
       "      <th>您认为您村社会风气是否得到改善</th>\n",
       "      <th>您认为您村开展什么活动促进了乡村文明建设</th>\n",
       "      <th>您认为您村治安环境是否得到改善</th>\n",
       "      <th>您认为乡村振兴后的家庭幸福标准是</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2022/11/25 21:00:19</td>\n",
       "      <td>50秒</td>\n",
       "      <td>微信</td>\n",
       "      <td>NaN</td>\n",
       "      <td>175.184.163.74(青海-海东)</td>\n",
       "      <td>B.女；</td>\n",
       "      <td>B.18-35岁；</td>\n",
       "      <td>D.大专及以上；</td>\n",
       "      <td>E.在读学生</td>\n",
       "      <td>A.建工厂，合作社；┋C.改善居住环境；┋D.增加就业创业机会；┋E.加大农村文化教育水平</td>\n",
       "      <td>B.发展家庭手工业；┋D.发展乡村旅游；</td>\n",
       "      <td>C.排水设施；┋D.农田灌溉；┋E.供水供电；┋F.物流网点；</td>\n",
       "      <td>A.减少停水停电；┋C.丰富文化生活；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>A.开展文化文艺活动；┋C.评选先进典型；┋D.完善文化设施；┋E.建立健全村规民约；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>B.吃得好，穿得好，住得好；</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2022/11/25 21:01:40</td>\n",
       "      <td>56秒</td>\n",
       "      <td>微信</td>\n",
       "      <td>NaN</td>\n",
       "      <td>42.63.135.72(宁夏-石嘴山)</td>\n",
       "      <td>B.女；</td>\n",
       "      <td>B.18-35岁；</td>\n",
       "      <td>D.大专及以上；</td>\n",
       "      <td>E.在读学生</td>\n",
       "      <td>A.建工厂，合作社；┋B.让村集体有钱办事；┋C.改善居住环境；┋D.增加就业创业机会；</td>\n",
       "      <td>A.发展特色种养业；┋D.发展乡村旅游；</td>\n",
       "      <td>A.街道胡同；┋E.供水供电；┋F.物流网点；</td>\n",
       "      <td>A.减少停水停电；┋B.卫生室条件改善；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>A.开展文化文艺活动；┋B.举办法律、农业等知识讲座；┋C.评选先进典型；┋E.建立健全村规民约；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>C.每年都能外出旅游；</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2022/11/25 21:02:56</td>\n",
       "      <td>38秒</td>\n",
       "      <td>微信</td>\n",
       "      <td>NaN</td>\n",
       "      <td>61.178.103.147(甘肃-兰州)</td>\n",
       "      <td>B.女；</td>\n",
       "      <td>B.18-35岁；</td>\n",
       "      <td>D.大专及以上；</td>\n",
       "      <td>E.在读学生</td>\n",
       "      <td>B.让村集体有钱办事；┋C.改善居住环境；┋D.增加就业创业机会；┋E.加大农村文化教育水平</td>\n",
       "      <td>A.发展特色种养业；┋B.发展家庭手工业；┋D.发展乡村旅游；</td>\n",
       "      <td>A.街道胡同；┋B.照明设施；┋C.排水设施；┋E.供水供电；┋F.物流网点；</td>\n",
       "      <td>B.卫生室条件改善；┋C.丰富文化生活；┋D.增加健身场所和器材；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>A.开展文化文艺活动；┋B.举办法律、农业等知识讲座；┋D.完善文化设施；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>B.吃得好，穿得好，住得好；</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2022/11/25 21:03:13</td>\n",
       "      <td>46秒</td>\n",
       "      <td>微信</td>\n",
       "      <td>NaN</td>\n",
       "      <td>111.49.203.97(宁夏-银川)</td>\n",
       "      <td>B.女；</td>\n",
       "      <td>B.18-35岁；</td>\n",
       "      <td>D.大专及以上；</td>\n",
       "      <td>E.在读学生</td>\n",
       "      <td>A.建工厂，合作社；┋B.让村集体有钱办事；┋C.改善居住环境；┋D.增加就业创业机会；┋E...</td>\n",
       "      <td>A.发展特色种养业；┋C.发展农产品加工；┋D.发展乡村旅游；</td>\n",
       "      <td>A.街道胡同；┋B.照明设施；┋C.排水设施；┋D.农田灌溉；┋E.供水供电；┋F.物流网点；</td>\n",
       "      <td>A.减少停水停电；┋B.卫生室条件改善；┋C.丰富文化生活；┋D.增加健身场所和器材；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>A.开展文化文艺活动；┋B.举办法律、农业等知识讲座；┋C.评选先进典型；┋D.完善文化设施...</td>\n",
       "      <td>A.是</td>\n",
       "      <td>D.家人在一起健康平安；</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2022/11/25 21:03:43</td>\n",
       "      <td>60秒</td>\n",
       "      <td>微信</td>\n",
       "      <td>NaN</td>\n",
       "      <td>180.141.139.156(广西-柳州)</td>\n",
       "      <td>A.男；</td>\n",
       "      <td>B.18-35岁；</td>\n",
       "      <td>D.大专及以上；</td>\n",
       "      <td>E.在读学生</td>\n",
       "      <td>A.建工厂，合作社；┋B.让村集体有钱办事；┋C.改善居住环境；┋D.增加就业创业机会；┋E...</td>\n",
       "      <td>A.发展特色种养业；┋B.发展家庭手工业；┋C.发展农产品加工；</td>\n",
       "      <td>A.街道胡同；┋B.照明设施；┋C.排水设施；┋D.农田灌溉；┋E.供水供电；┋F.物流网点；</td>\n",
       "      <td>B.卫生室条件改善；┋C.丰富文化生活；┋D.增加健身场所和器材；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>A.开展文化文艺活动；┋B.举办法律、农业等知识讲座；┋E.建立健全村规民约；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>B.吃得好，穿得好，住得好；</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204</th>\n",
       "      <td>205</td>\n",
       "      <td>2022/11/26 15:34:39</td>\n",
       "      <td>22秒</td>\n",
       "      <td>微信</td>\n",
       "      <td>NaN</td>\n",
       "      <td>116.177.28.116(青海-未知)</td>\n",
       "      <td>A.男；</td>\n",
       "      <td>B.18-35岁；</td>\n",
       "      <td>D.大专及以上；</td>\n",
       "      <td>E.在读学生</td>\n",
       "      <td>E.加大农村文化教育水平</td>\n",
       "      <td>D.发展乡村旅游；</td>\n",
       "      <td>F.物流网点；</td>\n",
       "      <td>C.丰富文化生活；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>B.举办法律、农业等知识讲座；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>B.吃得好，穿得好，住得好；</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>205</th>\n",
       "      <td>206</td>\n",
       "      <td>2022/11/26 15:48:09</td>\n",
       "      <td>125秒</td>\n",
       "      <td>微信</td>\n",
       "      <td>NaN</td>\n",
       "      <td>221.207.37.51(青海-西宁)</td>\n",
       "      <td>A.男；</td>\n",
       "      <td>B.18-35岁；</td>\n",
       "      <td>D.大专及以上；</td>\n",
       "      <td>C.本地务工；</td>\n",
       "      <td>B.让村集体有钱办事；┋C.改善居住环境；┋D.增加就业创业机会；</td>\n",
       "      <td>A.发展特色种养业；┋C.发展农产品加工；┋D.发展乡村旅游；</td>\n",
       "      <td>B.照明设施；</td>\n",
       "      <td>A.减少停水停电；</td>\n",
       "      <td>B.否</td>\n",
       "      <td>A.开展文化文艺活动；┋D.完善文化设施；┋E.建立健全村规民约；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>D.家人在一起健康平安；</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>206</th>\n",
       "      <td>207</td>\n",
       "      <td>2022/11/26 20:27:03</td>\n",
       "      <td>78秒</td>\n",
       "      <td>微信</td>\n",
       "      <td>NaN</td>\n",
       "      <td>36.142.179.213(甘肃-兰州)</td>\n",
       "      <td>A.男；</td>\n",
       "      <td>B.18-35岁；</td>\n",
       "      <td>C.高中；</td>\n",
       "      <td>E.在读学生</td>\n",
       "      <td>B.让村集体有钱办事；┋C.改善居住环境；┋E.加大农村文化教育水平</td>\n",
       "      <td>A.发展特色种养业；┋C.发展农产品加工；</td>\n",
       "      <td>A.街道胡同；┋B.照明设施；┋C.排水设施；</td>\n",
       "      <td>B.卫生室条件改善；┋C.丰富文化生活；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>B.举办法律、农业等知识讲座；┋D.完善文化设施；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>B.吃得好，穿得好，住得好；</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>207</th>\n",
       "      <td>208</td>\n",
       "      <td>2022/11/26 20:44:40</td>\n",
       "      <td>61秒</td>\n",
       "      <td>微信</td>\n",
       "      <td>NaN</td>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "      <td>B.女；</td>\n",
       "      <td>B.18-35岁；</td>\n",
       "      <td>D.大专及以上；</td>\n",
       "      <td>E.在读学生</td>\n",
       "      <td>D.增加就业创业机会；┋E.加大农村文化教育水平</td>\n",
       "      <td>A.发展特色种养业；┋C.发展农产品加工；</td>\n",
       "      <td>C.排水设施；┋E.供水供电；</td>\n",
       "      <td>B.卫生室条件改善；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>B.举办法律、农业等知识讲座；┋D.完善文化设施；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>C.每年都能外出旅游；</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>208</th>\n",
       "      <td>209</td>\n",
       "      <td>2022/11/26 22:44:48</td>\n",
       "      <td>72秒</td>\n",
       "      <td>微信</td>\n",
       "      <td>NaN</td>\n",
       "      <td>223.104.26.142(西藏-拉萨)</td>\n",
       "      <td>B.女；</td>\n",
       "      <td>B.18-35岁；</td>\n",
       "      <td>D.大专及以上；</td>\n",
       "      <td>E.在读学生</td>\n",
       "      <td>C.改善居住环境；┋D.增加就业创业机会；┋E.加大农村文化教育水平</td>\n",
       "      <td>A.发展特色种养业；┋C.发展农产品加工；┋D.发展乡村旅游；</td>\n",
       "      <td>A.街道胡同；┋D.农田灌溉；┋E.供水供电；┋F.物流网点；</td>\n",
       "      <td>B.卫生室条件改善；┋C.丰富文化生活；┋D.增加健身场所和器材；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>A.开展文化文艺活动；┋C.评选先进典型；┋D.完善文化设施；</td>\n",
       "      <td>A.是</td>\n",
       "      <td>D.家人在一起健康平安；</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>192 rows × 18 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      序号               提交答卷时间  所用时间  来源 来源详情                    来自IP  您的性别  \\\n",
       "0      1  2022/11/25 21:00:19   50秒  微信  NaN   175.184.163.74(青海-海东)  B.女；   \n",
       "1      2  2022/11/25 21:01:40   56秒  微信  NaN    42.63.135.72(宁夏-石嘴山)  B.女；   \n",
       "2      3  2022/11/25 21:02:56   38秒  微信  NaN   61.178.103.147(甘肃-兰州)  B.女；   \n",
       "3      4  2022/11/25 21:03:13   46秒  微信  NaN    111.49.203.97(宁夏-银川)  B.女；   \n",
       "4      5  2022/11/25 21:03:43   60秒  微信  NaN  180.141.139.156(广西-柳州)  A.男；   \n",
       "..   ...                  ...   ...  ..  ...                     ...   ...   \n",
       "204  205  2022/11/26 15:34:39   22秒  微信  NaN   116.177.28.116(青海-未知)  A.男；   \n",
       "205  206  2022/11/26 15:48:09  125秒  微信  NaN    221.207.37.51(青海-西宁)  A.男；   \n",
       "206  207  2022/11/26 20:27:03   78秒  微信  NaN   36.142.179.213(甘肃-兰州)  A.男；   \n",
       "207  208  2022/11/26 20:44:40   61秒  微信  NaN      42.89.62.51(甘肃-甘南)  B.女；   \n",
       "208  209  2022/11/26 22:44:48   72秒  微信  NaN   223.104.26.142(西藏-拉萨)  B.女；   \n",
       "\n",
       "          您的年龄    您的文化程度 您主要从事的行业  \\\n",
       "0    B.18-35岁；  D.大专及以上；   E.在读学生   \n",
       "1    B.18-35岁；  D.大专及以上；   E.在读学生   \n",
       "2    B.18-35岁；  D.大专及以上；   E.在读学生   \n",
       "3    B.18-35岁；  D.大专及以上；   E.在读学生   \n",
       "4    B.18-35岁；  D.大专及以上；   E.在读学生   \n",
       "..         ...       ...      ...   \n",
       "204  B.18-35岁；  D.大专及以上；   E.在读学生   \n",
       "205  B.18-35岁；  D.大专及以上；  C.本地务工；   \n",
       "206  B.18-35岁；     C.高中；   E.在读学生   \n",
       "207  B.18-35岁；  D.大专及以上；   E.在读学生   \n",
       "208  B.18-35岁；  D.大专及以上；   E.在读学生   \n",
       "\n",
       "                                       您认为乡村振兴带来的改变有哪些  \\\n",
       "0        A.建工厂，合作社；┋C.改善居住环境；┋D.增加就业创业机会；┋E.加大农村文化教育水平   \n",
       "1         A.建工厂，合作社；┋B.让村集体有钱办事；┋C.改善居住环境；┋D.增加就业创业机会；   \n",
       "2       B.让村集体有钱办事；┋C.改善居住环境；┋D.增加就业创业机会；┋E.加大农村文化教育水平   \n",
       "3    A.建工厂，合作社；┋B.让村集体有钱办事；┋C.改善居住环境；┋D.增加就业创业机会；┋E...   \n",
       "4    A.建工厂，合作社；┋B.让村集体有钱办事；┋C.改善居住环境；┋D.增加就业创业机会；┋E...   \n",
       "..                                                 ...   \n",
       "204                                       E.加大农村文化教育水平   \n",
       "205                  B.让村集体有钱办事；┋C.改善居住环境；┋D.增加就业创业机会；   \n",
       "206                 B.让村集体有钱办事；┋C.改善居住环境；┋E.加大农村文化教育水平   \n",
       "207                           D.增加就业创业机会；┋E.加大农村文化教育水平   \n",
       "208                 C.改善居住环境；┋D.增加就业创业机会；┋E.加大农村文化教育水平   \n",
       "\n",
       "                      您认为乡村振兴较侧重于哪一方面  \\\n",
       "0                B.发展家庭手工业；┋D.发展乡村旅游；   \n",
       "1                A.发展特色种养业；┋D.发展乡村旅游；   \n",
       "2     A.发展特色种养业；┋B.发展家庭手工业；┋D.发展乡村旅游；   \n",
       "3     A.发展特色种养业；┋C.发展农产品加工；┋D.发展乡村旅游；   \n",
       "4    A.发展特色种养业；┋B.发展家庭手工业；┋C.发展农产品加工；   \n",
       "..                                ...   \n",
       "204                         D.发展乡村旅游；   \n",
       "205   A.发展特色种养业；┋C.发展农产品加工；┋D.发展乡村旅游；   \n",
       "206             A.发展特色种养业；┋C.发展农产品加工；   \n",
       "207             A.发展特色种养业；┋C.发展农产品加工；   \n",
       "208   A.发展特色种养业；┋C.发展农产品加工；┋D.发展乡村旅游；   \n",
       "\n",
       "                                 您认为乡村振兴后有哪些基础设施得到改善  \\\n",
       "0                    C.排水设施；┋D.农田灌溉；┋E.供水供电；┋F.物流网点；   \n",
       "1                            A.街道胡同；┋E.供水供电；┋F.物流网点；   \n",
       "2            A.街道胡同；┋B.照明设施；┋C.排水设施；┋E.供水供电；┋F.物流网点；   \n",
       "3    A.街道胡同；┋B.照明设施；┋C.排水设施；┋D.农田灌溉；┋E.供水供电；┋F.物流网点；   \n",
       "4    A.街道胡同；┋B.照明设施；┋C.排水设施；┋D.农田灌溉；┋E.供水供电；┋F.物流网点；   \n",
       "..                                               ...   \n",
       "204                                          F.物流网点；   \n",
       "205                                          B.照明设施；   \n",
       "206                          A.街道胡同；┋B.照明设施；┋C.排水设施；   \n",
       "207                                  C.排水设施；┋E.供水供电；   \n",
       "208                  A.街道胡同；┋D.农田灌溉；┋E.供水供电；┋F.物流网点；   \n",
       "\n",
       "                                   您村公共服务方面有哪些改进 您认为您村社会风气是否得到改善  \\\n",
       "0                            A.减少停水停电；┋C.丰富文化生活；             A.是   \n",
       "1                           A.减少停水停电；┋B.卫生室条件改善；             A.是   \n",
       "2              B.卫生室条件改善；┋C.丰富文化生活；┋D.增加健身场所和器材；             A.是   \n",
       "3    A.减少停水停电；┋B.卫生室条件改善；┋C.丰富文化生活；┋D.增加健身场所和器材；             A.是   \n",
       "4              B.卫生室条件改善；┋C.丰富文化生活；┋D.增加健身场所和器材；             A.是   \n",
       "..                                           ...             ...   \n",
       "204                                    C.丰富文化生活；             A.是   \n",
       "205                                    A.减少停水停电；             B.否   \n",
       "206                         B.卫生室条件改善；┋C.丰富文化生活；             A.是   \n",
       "207                                   B.卫生室条件改善；             A.是   \n",
       "208            B.卫生室条件改善；┋C.丰富文化生活；┋D.增加健身场所和器材；             A.是   \n",
       "\n",
       "                                  您认为您村开展什么活动促进了乡村文明建设 您认为您村治安环境是否得到改善  \\\n",
       "0          A.开展文化文艺活动；┋C.评选先进典型；┋D.完善文化设施；┋E.建立健全村规民约；             A.是   \n",
       "1    A.开展文化文艺活动；┋B.举办法律、农业等知识讲座；┋C.评选先进典型；┋E.建立健全村规民约；             A.是   \n",
       "2                A.开展文化文艺活动；┋B.举办法律、农业等知识讲座；┋D.完善文化设施；             A.是   \n",
       "3    A.开展文化文艺活动；┋B.举办法律、农业等知识讲座；┋C.评选先进典型；┋D.完善文化设施...             A.是   \n",
       "4              A.开展文化文艺活动；┋B.举办法律、农业等知识讲座；┋E.建立健全村规民约；             A.是   \n",
       "..                                                 ...             ...   \n",
       "204                                    B.举办法律、农业等知识讲座；             A.是   \n",
       "205                  A.开展文化文艺活动；┋D.完善文化设施；┋E.建立健全村规民约；             A.是   \n",
       "206                          B.举办法律、农业等知识讲座；┋D.完善文化设施；             A.是   \n",
       "207                          B.举办法律、农业等知识讲座；┋D.完善文化设施；             A.是   \n",
       "208                    A.开展文化文艺活动；┋C.评选先进典型；┋D.完善文化设施；             A.是   \n",
       "\n",
       "    您认为乡村振兴后的家庭幸福标准是  \n",
       "0     B.吃得好，穿得好，住得好；  \n",
       "1        C.每年都能外出旅游；  \n",
       "2     B.吃得好，穿得好，住得好；  \n",
       "3       D.家人在一起健康平安；  \n",
       "4     B.吃得好，穿得好，住得好；  \n",
       "..               ...  \n",
       "204   B.吃得好，穿得好，住得好；  \n",
       "205     D.家人在一起健康平安；  \n",
       "206   B.吃得好，穿得好，住得好；  \n",
       "207      C.每年都能外出旅游；  \n",
       "208     D.家人在一起健康平安；  \n",
       "\n",
       "[192 rows x 18 columns]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp = df1[df1.isnull().T.any()]\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = df1.dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>序号</th>\n",
       "      <th>提交答卷时间</th>\n",
       "      <th>所用时间</th>\n",
       "      <th>来源</th>\n",
       "      <th>来自IP</th>\n",
       "      <th>您的性别</th>\n",
       "      <th>您的年龄</th>\n",
       "      <th>您的文化程度</th>\n",
       "      <th>您主要从事的行业</th>\n",
       "      <th>您认为乡村振兴带来的改变有哪些</th>\n",
       "      <th>您认为乡村振兴较侧重于哪一方面</th>\n",
       "      <th>您认为乡村振兴后有哪些基础设施得到改善</th>\n",
       "      <th>您村公共服务方面有哪些改进</th>\n",
       "      <th>您认为您村社会风气是否得到改善</th>\n",
       "      <th>您认为您村开展什么活动促进了乡村文明建设</th>\n",
       "      <th>您认为您村治安环境是否得到改善</th>\n",
       "      <th>您认为乡村振兴后的家庭幸福标准是</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [序号, 提交答卷时间, 所用时间, 来源, 来自IP, 您的性别, 您的年龄, 您的文化程度, 您主要从事的行业, 您认为乡村振兴带来的改变有哪些, 您认为乡村振兴较侧重于哪一方面, 您认为乡村振兴后有哪些基础设施得到改善, 您村公共服务方面有哪些改进, 您认为您村社会风气是否得到改善, 您认为您村开展什么活动促进了乡村文明建设, 您认为您村治安环境是否得到改善, 您认为乡村振兴后的家庭幸福标准是]\n",
       "Index: []"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2 = df1.drop(columns=\"来源详情\")\n",
    "\"\"\"再次查看空白列\"\"\"\n",
    "temp = df2[df2.isnull().T.any()]\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>来自IP</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>175.184.163.74(青海-海东)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>175.184.163.74(青海-海东)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>77</th>\n",
       "      <td>101.249.103.99(西藏-林芝)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>80</th>\n",
       "      <td>101.249.103.99(西藏-林芝)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>87</th>\n",
       "      <td>101.249.103.99(西藏-林芝)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>107</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>120</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>133</th>\n",
       "      <td>182.204.38.241(辽宁-铁岭)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>139</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>140</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>142</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>145</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>146</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>147</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>148</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>149</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>150</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>151</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>152</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>154</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>178</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>179</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>180</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>181</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>182</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>183</th>\n",
       "      <td>175.184.163.74(青海-海东)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>184</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>185</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>186</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>187</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>188</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>189</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>190</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>191</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>192</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>193</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>207</th>\n",
       "      <td>42.89.62.51(甘肃-甘南)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>208</th>\n",
       "      <td>223.104.26.142(西藏-拉萨)</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      来自IP\n",
       "57   175.184.163.74(青海-海东)\n",
       "58   175.184.163.74(青海-海东)\n",
       "77   101.249.103.99(西藏-林芝)\n",
       "80   101.249.103.99(西藏-林芝)\n",
       "87   101.249.103.99(西藏-林芝)\n",
       "107     42.89.62.51(甘肃-甘南)\n",
       "120     42.89.62.51(甘肃-甘南)\n",
       "133  182.204.38.241(辽宁-铁岭)\n",
       "139     42.89.62.51(甘肃-甘南)\n",
       "140     42.89.62.51(甘肃-甘南)\n",
       "142     42.89.62.51(甘肃-甘南)\n",
       "145     42.89.62.51(甘肃-甘南)\n",
       "146     42.89.62.51(甘肃-甘南)\n",
       "147     42.89.62.51(甘肃-甘南)\n",
       "148     42.89.62.51(甘肃-甘南)\n",
       "149     42.89.62.51(甘肃-甘南)\n",
       "150     42.89.62.51(甘肃-甘南)\n",
       "151     42.89.62.51(甘肃-甘南)\n",
       "152     42.89.62.51(甘肃-甘南)\n",
       "153     42.89.62.51(甘肃-甘南)\n",
       "154     42.89.62.51(甘肃-甘南)\n",
       "178     42.89.62.51(甘肃-甘南)\n",
       "179     42.89.62.51(甘肃-甘南)\n",
       "180     42.89.62.51(甘肃-甘南)\n",
       "181     42.89.62.51(甘肃-甘南)\n",
       "182     42.89.62.51(甘肃-甘南)\n",
       "183  175.184.163.74(青海-海东)\n",
       "184     42.89.62.51(甘肃-甘南)\n",
       "185     42.89.62.51(甘肃-甘南)\n",
       "186     42.89.62.51(甘肃-甘南)\n",
       "187     42.89.62.51(甘肃-甘南)\n",
       "188     42.89.62.51(甘肃-甘南)\n",
       "189     42.89.62.51(甘肃-甘南)\n",
       "190     42.89.62.51(甘肃-甘南)\n",
       "191     42.89.62.51(甘肃-甘南)\n",
       "192     42.89.62.51(甘肃-甘南)\n",
       "193     42.89.62.51(甘肃-甘南)\n",
       "194     42.89.62.51(甘肃-甘南)\n",
       "195     42.89.62.51(甘肃-甘南)\n",
       "197     42.89.62.51(甘肃-甘南)\n",
       "198     42.89.62.51(甘肃-甘南)\n",
       "199     42.89.62.51(甘肃-甘南)\n",
       "207     42.89.62.51(甘肃-甘南)\n",
       "208  223.104.26.142(西藏-拉萨)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2[df2.duplicated(subset=['来自IP'],keep='first')][['来自IP']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "df3 = df2.drop_duplicates(subset=['来自IP'],keep='first')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>序号</th>\n",
       "      <td>int64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>提交答卷时间</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>所用时间</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>来源</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>来自IP</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您的性别</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您的年龄</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您的文化程度</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您主要从事的行业</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为乡村振兴带来的改变有哪些</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为乡村振兴较侧重于哪一方面</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为乡村振兴后有哪些基础设施得到改善</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您村公共服务方面有哪些改进</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为您村社会风气是否得到改善</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为您村开展什么活动促进了乡村文明建设</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为您村治安环境是否得到改善</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为乡村振兴后的家庭幸福标准是</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                           0\n",
       "序号                     int64\n",
       "提交答卷时间                object\n",
       "所用时间                  object\n",
       "来源                    object\n",
       "来自IP                  object\n",
       "您的性别                  object\n",
       "您的年龄                  object\n",
       "您的文化程度                object\n",
       "您主要从事的行业              object\n",
       "您认为乡村振兴带来的改变有哪些       object\n",
       "您认为乡村振兴较侧重于哪一方面       object\n",
       "您认为乡村振兴后有哪些基础设施得到改善   object\n",
       "您村公共服务方面有哪些改进         object\n",
       "您认为您村社会风气是否得到改善       object\n",
       "您认为您村开展什么活动促进了乡村文明建设  object\n",
       "您认为您村治安环境是否得到改善       object\n",
       "您认为乡村振兴后的家庭幸福标准是      object"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看变量类型\n",
    "df3.dtypes.to_frame()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\PC\\AppData\\Local\\Temp\\ipykernel_9336\\2474077914.py:1: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  df3['填写问卷时长'] = df3['所用时间'].str.rstrip('秒')\n"
     ]
    }
   ],
   "source": [
    "df3['填写问卷时长'] = df3['所用时间'].str.rstrip('秒')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>序号</th>\n",
       "      <td>int64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>提交答卷时间</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>所用时间</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>来源</th>\n",
       "      <td>object</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>来自IP</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您的性别</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您的年龄</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您的文化程度</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您主要从事的行业</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为乡村振兴带来的改变有哪些</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为乡村振兴较侧重于哪一方面</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为乡村振兴后有哪些基础设施得到改善</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您村公共服务方面有哪些改进</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为您村社会风气是否得到改善</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为您村开展什么活动促进了乡村文明建设</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为您村治安环境是否得到改善</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为乡村振兴后的家庭幸福标准是</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>填写问卷时长</th>\n",
       "      <td>category</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             0\n",
       "序号                       int64\n",
       "提交答卷时间                category\n",
       "所用时间                  category\n",
       "来源                      object\n",
       "来自IP                  category\n",
       "您的性别                  category\n",
       "您的年龄                  category\n",
       "您的文化程度                category\n",
       "您主要从事的行业              category\n",
       "您认为乡村振兴带来的改变有哪些       category\n",
       "您认为乡村振兴较侧重于哪一方面       category\n",
       "您认为乡村振兴后有哪些基础设施得到改善   category\n",
       "您村公共服务方面有哪些改进         category\n",
       "您认为您村社会风气是否得到改善       category\n",
       "您认为您村开展什么活动促进了乡村文明建设  category\n",
       "您认为您村治安环境是否得到改善       category\n",
       "您认为乡村振兴后的家庭幸福标准是      category\n",
       "填写问卷时长                category"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4 = df3.astype({\n",
    "    '来自IP': 'category',\n",
    "    '您主要从事的行业': 'category',\n",
    "    '提交答卷时间':'category',\t\n",
    "    '所用时间':'category',\t\n",
    "    '您的性别':'category',\t\n",
    "    '您的年龄':'category',\n",
    "    '您的文化程度':'category',\n",
    "    '您主要从事的行业':'category', \n",
    "    '您认为乡村振兴带来的改变有哪些':'category',\n",
    "    '您认为乡村振兴较侧重于哪一方面':'category',\n",
    "    '您认为乡村振兴后有哪些基础设施得到改善':'category',\n",
    "    '您村公共服务方面有哪些改进':'category',\n",
    "    '您认为您村社会风气是否得到改善':'category',\n",
    "    '您认为您村开展什么活动促进了乡村文明建设':'category',\n",
    "    '您认为您村治安环境是否得到改善':'category',\n",
    "    '您认为乡村振兴后的家庭幸福标准是':'category',\n",
    "    '填写问卷时长':'category',\n",
    "  \n",
    "})\n",
    "df4.dtypes.to_frame()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count     165\n",
       "unique     88\n",
       "top       68秒\n",
       "freq        6\n",
       "Name: 所用时间, dtype: object"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4['所用时间'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df4.copy()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据清理完成开始数据分析\n",
    "先描述样本背景，对样本质量进行评价。再描述样本特征信息、样本基本现状，最后描述样本基本态度及其他维度。\n",
    "样本质量评估   检查抽样实施过程，汇报抽样过程。（是否随机是关键）\n",
    "通过样本与总体共有的特征，评估样本质量。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>您的性别</th>\n",
       "      <th>个数</th>\n",
       "      <th>百分比</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>B.女；</td>\n",
       "      <td>103</td>\n",
       "      <td>62.42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>A.男；</td>\n",
       "      <td>62</td>\n",
       "      <td>37.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>总和</td>\n",
       "      <td>165</td>\n",
       "      <td>100.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   您的性别   个数     百分比\n",
       "0  B.女；  103   62.42\n",
       "1  A.男；   62   37.58\n",
       "2    总和  165  100.00"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mytools.gen_percent_table(df,'您的性别')\n",
    "### 样本特征（性别）与总体特征的对比"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "样本特征分析   样本文化程度分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CategoricalDtype(categories=['A.以存钱多少为标准；', 'B.吃得好，穿得好，住得好；', 'C.每年都能外出旅游；',\n",
       "                  'D.家人在一起健康平安；'],\n",
       ", ordered=False)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['您认为乡村振兴后的家庭幸福标准是'].dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "cat_type = CategoricalDtype(categories=['A.以存钱多少为标准；', 'B.吃得好，穿得好，住得好；', 'C.每年都能外出旅游；',\n",
    "                  'D.家人在一起健康平安；'],\n",
    "                            ordered=True)\n",
    "df['您认为乡村振兴后的家庭幸福标准是'] = df['您认为乡村振兴后的家庭幸福标准是'].astype(cat_type)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CategoricalDtype(categories=['A.以存钱多少为标准；', 'B.吃得好，穿得好，住得好；', 'C.每年都能外出旅游；',\n",
       "                  'D.家人在一起健康平安；'],\n",
       ", ordered=True)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['您认为乡村振兴后的家庭幸福标准是'].dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>您认为乡村振兴后的家庭幸福标准是</th>\n",
       "      <th>个数</th>\n",
       "      <th>百分比</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>A.以存钱多少为标准；</td>\n",
       "      <td>10</td>\n",
       "      <td>6.06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>B.吃得好，穿得好，住得好；</td>\n",
       "      <td>84</td>\n",
       "      <td>50.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>C.每年都能外出旅游；</td>\n",
       "      <td>11</td>\n",
       "      <td>6.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>D.家人在一起健康平安；</td>\n",
       "      <td>60</td>\n",
       "      <td>36.36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>总和</td>\n",
       "      <td>165</td>\n",
       "      <td>100.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  您认为乡村振兴后的家庭幸福标准是   个数     百分比\n",
       "0      A.以存钱多少为标准；   10    6.06\n",
       "1   B.吃得好，穿得好，住得好；   84   50.91\n",
       "2      C.每年都能外出旅游；   11    6.67\n",
       "3     D.家人在一起健康平安；   60   36.36\n",
       "4               总和  165  100.00"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mytools.gen_percent_table(df,'您认为乡村振兴后的家庭幸福标准是',sort=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "plotlyServerURL": "https://plot.ly"
       },
       "data": [
        {
         "alignmentgroup": "True",
         "hovertemplate": "您认为乡村振兴后的家庭幸福标准是=%{x}<br>count=%{y}<extra></extra>",
         "legendgroup": "",
         "marker": {
          "color": "#636efa",
          "pattern": {
           "shape": ""
          }
         },
         "name": "",
         "offsetgroup": "",
         "orientation": "v",
         "showlegend": false,
         "textposition": "auto",
         "type": "bar",
         "x": [
          "B.吃得好，穿得好，住得好；",
          "C.每年都能外出旅游；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "A.以存钱多少为标准；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "C.每年都能外出旅游；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "A.以存钱多少为标准；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "A.以存钱多少为标准；",
          "C.每年都能外出旅游；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "A.以存钱多少为标准；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "C.每年都能外出旅游；",
          "C.每年都能外出旅游；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "C.每年都能外出旅游；",
          "A.以存钱多少为标准；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "C.每年都能外出旅游；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "C.每年都能外出旅游；",
          "A.以存钱多少为标准；",
          "B.吃得好，穿得好，住得好；",
          "C.每年都能外出旅游；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "A.以存钱多少为标准；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "A.以存钱多少为标准；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "A.以存钱多少为标准；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "C.每年都能外出旅游；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "A.以存钱多少为标准；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "C.每年都能外出旅游；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；",
          "D.家人在一起健康平安；",
          "B.吃得好，穿得好，住得好；"
         ],
         "xaxis": "x",
         "y": [
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1
         ],
         "yaxis": "y"
        }
       ],
       "layout": {
        "barmode": "relative",
        "legend": {
         "tracegroupgap": 0
        },
        "margin": {
         "t": 60
        },
        "template": {
         "data": {
          "bar": [
           {
            "error_x": {
             "color": "#2a3f5f"
            },
            "error_y": {
             "color": "#2a3f5f"
            },
            "marker": {
             "line": {
              "color": "#E5ECF6",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "bar"
           }
          ],
          "barpolar": [
           {
            "marker": {
             "line": {
              "color": "#E5ECF6",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "barpolar"
           }
          ],
          "carpet": [
           {
            "aaxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "#2a3f5f"
            },
            "baxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "#2a3f5f"
            },
            "type": "carpet"
           }
          ],
          "choropleth": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "choropleth"
           }
          ],
          "contour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "contour"
           }
          ],
          "contourcarpet": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "contourcarpet"
           }
          ],
          "heatmap": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmap"
           }
          ],
          "heatmapgl": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmapgl"
           }
          ],
          "histogram": [
           {
            "marker": {
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "histogram"
           }
          ],
          "histogram2d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2d"
           }
          ],
          "histogram2dcontour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2dcontour"
           }
          ],
          "mesh3d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "mesh3d"
           }
          ],
          "parcoords": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "parcoords"
           }
          ],
          "pie": [
           {
            "automargin": true,
            "type": "pie"
           }
          ],
          "scatter": [
           {
            "fillpattern": {
             "fillmode": "overlay",
             "size": 10,
             "solidity": 0.2
            },
            "type": "scatter"
           }
          ],
          "scatter3d": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatter3d"
           }
          ],
          "scattercarpet": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattercarpet"
           }
          ],
          "scattergeo": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergeo"
           }
          ],
          "scattergl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergl"
           }
          ],
          "scattermapbox": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermapbox"
           }
          ],
          "scatterpolar": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolar"
           }
          ],
          "scatterpolargl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolargl"
           }
          ],
          "scatterternary": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterternary"
           }
          ],
          "surface": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "surface"
           }
          ],
          "table": [
           {
            "cells": {
             "fill": {
              "color": "#EBF0F8"
             },
             "line": {
              "color": "white"
             }
            },
            "header": {
             "fill": {
              "color": "#C8D4E3"
             },
             "line": {
              "color": "white"
             }
            },
            "type": "table"
           }
          ]
         },
         "layout": {
          "annotationdefaults": {
           "arrowcolor": "#2a3f5f",
           "arrowhead": 0,
           "arrowwidth": 1
          },
          "autotypenumbers": "strict",
          "coloraxis": {
           "colorbar": {
            "outlinewidth": 0,
            "ticks": ""
           }
          },
          "colorscale": {
           "diverging": [
            [
             0,
             "#8e0152"
            ],
            [
             0.1,
             "#c51b7d"
            ],
            [
             0.2,
             "#de77ae"
            ],
            [
             0.3,
             "#f1b6da"
            ],
            [
             0.4,
             "#fde0ef"
            ],
            [
             0.5,
             "#f7f7f7"
            ],
            [
             0.6,
             "#e6f5d0"
            ],
            [
             0.7,
             "#b8e186"
            ],
            [
             0.8,
             "#7fbc41"
            ],
            [
             0.9,
             "#4d9221"
            ],
            [
             1,
             "#276419"
            ]
           ],
           "sequential": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ],
           "sequentialminus": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ]
          },
          "colorway": [
           "#636efa",
           "#EF553B",
           "#00cc96",
           "#ab63fa",
           "#FFA15A",
           "#19d3f3",
           "#FF6692",
           "#B6E880",
           "#FF97FF",
           "#FECB52"
          ],
          "font": {
           "color": "#2a3f5f"
          },
          "geo": {
           "bgcolor": "white",
           "lakecolor": "white",
           "landcolor": "#E5ECF6",
           "showlakes": true,
           "showland": true,
           "subunitcolor": "white"
          },
          "hoverlabel": {
           "align": "left"
          },
          "hovermode": "closest",
          "mapbox": {
           "style": "light"
          },
          "paper_bgcolor": "white",
          "plot_bgcolor": "#E5ECF6",
          "polar": {
           "angularaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "bgcolor": "#E5ECF6",
           "radialaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           }
          },
          "scene": {
           "xaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           },
           "yaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           },
           "zaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           }
          },
          "shapedefaults": {
           "line": {
            "color": "#2a3f5f"
           }
          },
          "ternary": {
           "aaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "baxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "bgcolor": "#E5ECF6",
           "caxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           }
          },
          "title": {
           "x": 0.05
          },
          "xaxis": {
           "automargin": true,
           "gridcolor": "white",
           "linecolor": "white",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "white",
           "zerolinewidth": 2
          },
          "yaxis": {
           "automargin": true,
           "gridcolor": "white",
           "linecolor": "white",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "white",
           "zerolinewidth": 2
          }
         }
        },
        "xaxis": {
         "anchor": "y",
         "domain": [
          0,
          1
         ],
         "title": {
          "text": "您认为乡村振兴后的家庭幸福标准是"
         }
        },
        "yaxis": {
         "anchor": "x",
         "domain": [
          0,
          1
         ],
         "title": {
          "text": "count"
         }
        }
       }
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = px.bar(df,x=\"您认为乡村振兴后的家庭幸福标准是\")\n",
    "fig.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由表格可以看出大部分人的评判标准为吃得好、穿得好、住得好。可以看出虽然我国已全面实现小康生活，但是人民对于精神生活品质的追求还是较少，多是以物质生活的满足为基础。中国特色社会主义进入新时代，我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。必须认识到，我国社会主要矛盾的变化是关系全局的历史性变化，对党和国家工作提出了许多新要求。我们要在继续推动发展的基础上，着力解决好发展不平衡不充分问题，大力提升发展质量和效益，更好满足人民在经济、政治、文化、社会、生态等方面日益增长的需要，更好推动人的全面发展、社会全面进步。"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "多选题分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "A.建工厂，合作社；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "B.让村集体有钱办事；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "A.建工厂，合作社；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "D.增加就业创业机会；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "B.让村集体有钱办事；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "D.增加就业创业机会；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "D.增加就业创业机会；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "D.增加就业创业机会；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "C.改善居住环境；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "A.建工厂，合作社；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "A.建工厂，合作社；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n",
      "E.加大农村文化教育水平\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "D.增加就业创业机会；\n",
      "B.让村集体有钱办事；\n",
      "C.改善居住环境；\n",
      "E.加大农村文化教育水平\n"
     ]
    }
   ],
   "source": [
    "df4['test'] = df4['您认为乡村振兴带来的改变有哪些'].str.split('┋')\n",
    "mcq_items = []\n",
    "for g in df4['test']:\n",
    "    # print(g)\n",
    "    for label in g:\n",
    "        print(label)\n",
    "        mcq_items.append(label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "result = list(set(mcq_items))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_mcq_1 = pd.DataFrame(data=np.zeros([len(result),2]),index=result,columns=['次数','比例'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in df4['您认为乡村振兴带来的改变有哪些']:\n",
    "    for label in result:\n",
    "        if str(i).__contains__(label):\n",
    "            df_mcq_1.loc[label,'次数'] += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"生成比例列\"\"\"\n",
    "df_mcq_1['比例'] = df_mcq_1['次数']/df4.shape[0]*100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_mcq_1 = df_mcq_1.sort_values(by='比例')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>次数</th>\n",
       "      <th>比例</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>A.建工厂，合作社；</th>\n",
       "      <td>76.0</td>\n",
       "      <td>46.060606</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B.让村集体有钱办事；</th>\n",
       "      <td>83.0</td>\n",
       "      <td>50.303030</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>D.增加就业创业机会；</th>\n",
       "      <td>130.0</td>\n",
       "      <td>78.787879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C.改善居住环境；</th>\n",
       "      <td>133.0</td>\n",
       "      <td>80.606061</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>E.加大农村文化教育水平</th>\n",
       "      <td>141.0</td>\n",
       "      <td>85.454545</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 次数         比例\n",
       "A.建工厂，合作社；     76.0  46.060606\n",
       "B.让村集体有钱办事；    83.0  50.303030\n",
       "D.增加就业创业机会；   130.0  78.787879\n",
       "C.改善居住环境；     133.0  80.606061\n",
       "E.加大农村文化教育水平  141.0  85.454545"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_mcq_1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "plotlyServerURL": "https://plot.ly"
       },
       "data": [
        {
         "alignmentgroup": "True",
         "hovertemplate": "比例=%{x}<br>index=%{y}<extra></extra>",
         "legendgroup": "",
         "marker": {
          "color": "#636efa",
          "pattern": {
           "shape": ""
          }
         },
         "name": "",
         "offsetgroup": "",
         "orientation": "h",
         "showlegend": false,
         "textposition": "auto",
         "type": "bar",
         "x": [
          46.06060606060606,
          50.303030303030305,
          78.78787878787878,
          80.60606060606061,
          85.45454545454545
         ],
         "xaxis": "x",
         "y": [
          "A.建工厂，合作社；",
          "B.让村集体有钱办事；",
          "D.增加就业创业机会；",
          "C.改善居住环境；",
          "E.加大农村文化教育水平"
         ],
         "yaxis": "y"
        }
       ],
       "layout": {
        "barmode": "relative",
        "legend": {
         "tracegroupgap": 0
        },
        "margin": {
         "t": 60
        },
        "template": {
         "data": {
          "bar": [
           {
            "error_x": {
             "color": "#2a3f5f"
            },
            "error_y": {
             "color": "#2a3f5f"
            },
            "marker": {
             "line": {
              "color": "#E5ECF6",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "bar"
           }
          ],
          "barpolar": [
           {
            "marker": {
             "line": {
              "color": "#E5ECF6",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "barpolar"
           }
          ],
          "carpet": [
           {
            "aaxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "#2a3f5f"
            },
            "baxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "#2a3f5f"
            },
            "type": "carpet"
           }
          ],
          "choropleth": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "choropleth"
           }
          ],
          "contour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "contour"
           }
          ],
          "contourcarpet": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "contourcarpet"
           }
          ],
          "heatmap": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmap"
           }
          ],
          "heatmapgl": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmapgl"
           }
          ],
          "histogram": [
           {
            "marker": {
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "histogram"
           }
          ],
          "histogram2d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2d"
           }
          ],
          "histogram2dcontour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2dcontour"
           }
          ],
          "mesh3d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "mesh3d"
           }
          ],
          "parcoords": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "parcoords"
           }
          ],
          "pie": [
           {
            "automargin": true,
            "type": "pie"
           }
          ],
          "scatter": [
           {
            "fillpattern": {
             "fillmode": "overlay",
             "size": 10,
             "solidity": 0.2
            },
            "type": "scatter"
           }
          ],
          "scatter3d": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatter3d"
           }
          ],
          "scattercarpet": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattercarpet"
           }
          ],
          "scattergeo": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergeo"
           }
          ],
          "scattergl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergl"
           }
          ],
          "scattermapbox": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermapbox"
           }
          ],
          "scatterpolar": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolar"
           }
          ],
          "scatterpolargl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolargl"
           }
          ],
          "scatterternary": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterternary"
           }
          ],
          "surface": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "surface"
           }
          ],
          "table": [
           {
            "cells": {
             "fill": {
              "color": "#EBF0F8"
             },
             "line": {
              "color": "white"
             }
            },
            "header": {
             "fill": {
              "color": "#C8D4E3"
             },
             "line": {
              "color": "white"
             }
            },
            "type": "table"
           }
          ]
         },
         "layout": {
          "annotationdefaults": {
           "arrowcolor": "#2a3f5f",
           "arrowhead": 0,
           "arrowwidth": 1
          },
          "autotypenumbers": "strict",
          "coloraxis": {
           "colorbar": {
            "outlinewidth": 0,
            "ticks": ""
           }
          },
          "colorscale": {
           "diverging": [
            [
             0,
             "#8e0152"
            ],
            [
             0.1,
             "#c51b7d"
            ],
            [
             0.2,
             "#de77ae"
            ],
            [
             0.3,
             "#f1b6da"
            ],
            [
             0.4,
             "#fde0ef"
            ],
            [
             0.5,
             "#f7f7f7"
            ],
            [
             0.6,
             "#e6f5d0"
            ],
            [
             0.7,
             "#b8e186"
            ],
            [
             0.8,
             "#7fbc41"
            ],
            [
             0.9,
             "#4d9221"
            ],
            [
             1,
             "#276419"
            ]
           ],
           "sequential": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ],
           "sequentialminus": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ]
          },
          "colorway": [
           "#636efa",
           "#EF553B",
           "#00cc96",
           "#ab63fa",
           "#FFA15A",
           "#19d3f3",
           "#FF6692",
           "#B6E880",
           "#FF97FF",
           "#FECB52"
          ],
          "font": {
           "color": "#2a3f5f"
          },
          "geo": {
           "bgcolor": "white",
           "lakecolor": "white",
           "landcolor": "#E5ECF6",
           "showlakes": true,
           "showland": true,
           "subunitcolor": "white"
          },
          "hoverlabel": {
           "align": "left"
          },
          "hovermode": "closest",
          "mapbox": {
           "style": "light"
          },
          "paper_bgcolor": "white",
          "plot_bgcolor": "#E5ECF6",
          "polar": {
           "angularaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "bgcolor": "#E5ECF6",
           "radialaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           }
          },
          "scene": {
           "xaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           },
           "yaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           },
           "zaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           }
          },
          "shapedefaults": {
           "line": {
            "color": "#2a3f5f"
           }
          },
          "ternary": {
           "aaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "baxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "bgcolor": "#E5ECF6",
           "caxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           }
          },
          "title": {
           "x": 0.05
          },
          "xaxis": {
           "automargin": true,
           "gridcolor": "white",
           "linecolor": "white",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "white",
           "zerolinewidth": 2
          },
          "yaxis": {
           "automargin": true,
           "gridcolor": "white",
           "linecolor": "white",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "white",
           "zerolinewidth": 2
          }
         }
        },
        "xaxis": {
         "anchor": "y",
         "domain": [
          0,
          1
         ],
         "title": {
          "text": "比例"
         }
        },
        "yaxis": {
         "anchor": "x",
         "domain": [
          0,
          1
         ],
         "title": {
          "text": "index"
         }
        }
       }
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = px.bar(df_mcq_1, x=\"比例\",orientation='h')\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gen_mcq_df(df,x,pattern='┋'):\n",
    "    \"\"\"\n",
    "    定义一个针对问卷星数据多选题的分析函数\n",
    "    \n",
    "    df: 数据框\n",
    "    x: 问卷星中定义的多选题\n",
    "\n",
    "    返回值： 一个包含所有选项及出现次数和所占比例的数据框\n",
    "\n",
    "    如：\n",
    "\n",
    "    |选项|次数|比例（%）|\n",
    "    |--|--|--|\n",
    "    |单纯根据个人喜爱|20|5.5|\n",
    "    |广告内容较感兴趣|20|5.5|\n",
    "    |喜欢的明星代言|20|5.5|\n",
    "    |视频广告|20|5.5|\n",
    "       \n",
    "    \"\"\"\n",
    "    # 按照指定分隔符将多选题字符串转化包含多个选项的列表\n",
    "    df['temp'] = df[x].str.split(pattern)\n",
    "    # 初始化列表，用于保存所有多选题选项\n",
    "    mcq_items = []\n",
    "    # 循环所有个案，获取所有多选题选项\n",
    "    for g in df['temp']:\n",
    "        for label in g:\n",
    "            # print(label)\n",
    "            mcq_items.append(label)\n",
    "    # 将多选题选项去重后转化为列表，方便构造dataframe\n",
    "    result = list(set(mcq_items))\n",
    "    # 构造包含选项、次数和比例的空表\n",
    "    df_mcq_1 = pd.DataFrame(data=np.zeros([len(result), 2]),\n",
    "                            index=result,\n",
    "                            columns=['次数', '比例'])\n",
    "    # 通过循环获取每个选项在多选题中累次出现的次数\n",
    "    for i in df[x]:\n",
    "        for label in result:\n",
    "            if str(i).__contains__(label):\n",
    "                df_mcq_1.loc[label, '次数'] += 1\n",
    "    # 生成比例列\n",
    "    df_mcq_1['比例'] = df_mcq_1['次数'] / df.shape[0] * 100\n",
    "\n",
    "    return df_mcq_1.astype({'次数':\"int\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>次数</th>\n",
       "      <th>比例</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>B.发展家庭手工业；</th>\n",
       "      <td>91</td>\n",
       "      <td>55.151515</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C.发展农产品加工；</th>\n",
       "      <td>124</td>\n",
       "      <td>75.151515</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>D.发展乡村旅游；</th>\n",
       "      <td>130</td>\n",
       "      <td>78.787879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>A.发展特色种养业；</th>\n",
       "      <td>133</td>\n",
       "      <td>80.606061</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             次数         比例\n",
       "B.发展家庭手工业；   91  55.151515\n",
       "C.发展农产品加工；  124  75.151515\n",
       "D.发展乡村旅游；   130  78.787879\n",
       "A.发展特色种养业；  133  80.606061"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ad_feature = mytools.gen_mcq_df(df,'您认为乡村振兴较侧重于哪一方面')\n",
    "ad_feature = ad_feature.sort_values(by='比例')\n",
    "ad_feature"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "plotlyServerURL": "https://plot.ly"
       },
       "data": [
        {
         "alignmentgroup": "True",
         "hovertemplate": "比例=%{x}<br>index=%{y}<extra></extra>",
         "legendgroup": "",
         "marker": {
          "color": "#636efa",
          "pattern": {
           "shape": ""
          }
         },
         "name": "",
         "offsetgroup": "",
         "orientation": "h",
         "showlegend": false,
         "textposition": "auto",
         "type": "bar",
         "x": [
          55.15151515151515,
          75.15151515151514,
          78.78787878787878,
          80.60606060606061
         ],
         "xaxis": "x",
         "y": [
          "B.发展家庭手工业；",
          "C.发展农产品加工；",
          "D.发展乡村旅游；",
          "A.发展特色种养业；"
         ],
         "yaxis": "y"
        }
       ],
       "layout": {
        "barmode": "relative",
        "legend": {
         "tracegroupgap": 0
        },
        "margin": {
         "t": 60
        },
        "template": {
         "data": {
          "bar": [
           {
            "error_x": {
             "color": "#2a3f5f"
            },
            "error_y": {
             "color": "#2a3f5f"
            },
            "marker": {
             "line": {
              "color": "#E5ECF6",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "bar"
           }
          ],
          "barpolar": [
           {
            "marker": {
             "line": {
              "color": "#E5ECF6",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "barpolar"
           }
          ],
          "carpet": [
           {
            "aaxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "#2a3f5f"
            },
            "baxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "#2a3f5f"
            },
            "type": "carpet"
           }
          ],
          "choropleth": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "choropleth"
           }
          ],
          "contour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "contour"
           }
          ],
          "contourcarpet": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "contourcarpet"
           }
          ],
          "heatmap": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmap"
           }
          ],
          "heatmapgl": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmapgl"
           }
          ],
          "histogram": [
           {
            "marker": {
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "histogram"
           }
          ],
          "histogram2d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2d"
           }
          ],
          "histogram2dcontour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2dcontour"
           }
          ],
          "mesh3d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "mesh3d"
           }
          ],
          "parcoords": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "parcoords"
           }
          ],
          "pie": [
           {
            "automargin": true,
            "type": "pie"
           }
          ],
          "scatter": [
           {
            "fillpattern": {
             "fillmode": "overlay",
             "size": 10,
             "solidity": 0.2
            },
            "type": "scatter"
           }
          ],
          "scatter3d": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatter3d"
           }
          ],
          "scattercarpet": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattercarpet"
           }
          ],
          "scattergeo": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergeo"
           }
          ],
          "scattergl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergl"
           }
          ],
          "scattermapbox": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermapbox"
           }
          ],
          "scatterpolar": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolar"
           }
          ],
          "scatterpolargl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolargl"
           }
          ],
          "scatterternary": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterternary"
           }
          ],
          "surface": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "surface"
           }
          ],
          "table": [
           {
            "cells": {
             "fill": {
              "color": "#EBF0F8"
             },
             "line": {
              "color": "white"
             }
            },
            "header": {
             "fill": {
              "color": "#C8D4E3"
             },
             "line": {
              "color": "white"
             }
            },
            "type": "table"
           }
          ]
         },
         "layout": {
          "annotationdefaults": {
           "arrowcolor": "#2a3f5f",
           "arrowhead": 0,
           "arrowwidth": 1
          },
          "autotypenumbers": "strict",
          "coloraxis": {
           "colorbar": {
            "outlinewidth": 0,
            "ticks": ""
           }
          },
          "colorscale": {
           "diverging": [
            [
             0,
             "#8e0152"
            ],
            [
             0.1,
             "#c51b7d"
            ],
            [
             0.2,
             "#de77ae"
            ],
            [
             0.3,
             "#f1b6da"
            ],
            [
             0.4,
             "#fde0ef"
            ],
            [
             0.5,
             "#f7f7f7"
            ],
            [
             0.6,
             "#e6f5d0"
            ],
            [
             0.7,
             "#b8e186"
            ],
            [
             0.8,
             "#7fbc41"
            ],
            [
             0.9,
             "#4d9221"
            ],
            [
             1,
             "#276419"
            ]
           ],
           "sequential": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ],
           "sequentialminus": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ]
          },
          "colorway": [
           "#636efa",
           "#EF553B",
           "#00cc96",
           "#ab63fa",
           "#FFA15A",
           "#19d3f3",
           "#FF6692",
           "#B6E880",
           "#FF97FF",
           "#FECB52"
          ],
          "font": {
           "color": "#2a3f5f"
          },
          "geo": {
           "bgcolor": "white",
           "lakecolor": "white",
           "landcolor": "#E5ECF6",
           "showlakes": true,
           "showland": true,
           "subunitcolor": "white"
          },
          "hoverlabel": {
           "align": "left"
          },
          "hovermode": "closest",
          "mapbox": {
           "style": "light"
          },
          "paper_bgcolor": "white",
          "plot_bgcolor": "#E5ECF6",
          "polar": {
           "angularaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "bgcolor": "#E5ECF6",
           "radialaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           }
          },
          "scene": {
           "xaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           },
           "yaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           },
           "zaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           }
          },
          "shapedefaults": {
           "line": {
            "color": "#2a3f5f"
           }
          },
          "ternary": {
           "aaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "baxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "bgcolor": "#E5ECF6",
           "caxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           }
          },
          "title": {
           "x": 0.05
          },
          "xaxis": {
           "automargin": true,
           "gridcolor": "white",
           "linecolor": "white",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "white",
           "zerolinewidth": 2
          },
          "yaxis": {
           "automargin": true,
           "gridcolor": "white",
           "linecolor": "white",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "white",
           "zerolinewidth": 2
          }
         }
        },
        "xaxis": {
         "anchor": "y",
         "domain": [
          0,
          1
         ],
         "title": {
          "text": "比例"
         }
        },
        "yaxis": {
         "anchor": "x",
         "domain": [
          0,
          1
         ],
         "title": {
          "text": "index"
         }
        }
       }
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = px.bar(ad_feature, x=\"比例\",orientation='h')\n",
    "fig.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "多选题使用频数分析发现发展乡村旅游业的频率最高，由此看出在乡村振兴中旅游业的重要作用，具有广阔的市场前景。乡村旅游是旅游业的重要组成部分，对于全面推进乡村振兴具有重要意义。党的十八大以来，习近平总书记高度重视乡村旅游工作，强调“全面推进乡村振兴，要立足特色资源，坚持科技兴农，因地制宜发展乡村旅游、休闲农业等新产业新业态”。新征程上，我们要充分认识做好乡村旅游工作的重要性和紧迫性，更好推动乡村旅游发展，加快形成农业农村发展新动能"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "推论统计"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>您认为您村社会风气是否得到改善</th>\n",
       "      <th>个数</th>\n",
       "      <th>百分比</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>A.是</td>\n",
       "      <td>139</td>\n",
       "      <td>84.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>B.否</td>\n",
       "      <td>26</td>\n",
       "      <td>15.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>总和</td>\n",
       "      <td>165</td>\n",
       "      <td>100.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  您认为您村社会风气是否得到改善   个数     百分比\n",
       "0             A.是  139   84.24\n",
       "1             B.否   26   15.76\n",
       "2              总和  165  100.00"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mytools.gen_percent_table(df,'您认为您村社会风气是否得到改善')"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "双变量描述统计"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>您的性别</th>\n",
       "      <th>A.男；</th>\n",
       "      <th>B.女；</th>\n",
       "      <th>合计</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为您村社会风气是否得到改善</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>A.是</th>\n",
       "      <td>82.26</td>\n",
       "      <td>85.44</td>\n",
       "      <td>84.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B.否</th>\n",
       "      <td>17.74</td>\n",
       "      <td>14.56</td>\n",
       "      <td>15.76</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "您的性别              A.男；   B.女；     合计\n",
       "您认为您村社会风气是否得到改善                     \n",
       "A.是              82.26  85.44  84.24\n",
       "B.否              17.74  14.56  15.76"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result = pd.crosstab(\n",
    "        df['您认为您村社会风气是否得到改善'],\n",
    "        df['您的性别'],\n",
    "        normalize='columns',\n",
    "        margins=True,\n",
    "        margins_name='合计',\n",
    "    )*100\n",
    "result.round(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>您认为您村社会风气是否得到改善</th>\n",
       "      <th>您的性别</th>\n",
       "      <th>频次</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>A.是</td>\n",
       "      <td>A.男；</td>\n",
       "      <td>51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>A.是</td>\n",
       "      <td>B.女；</td>\n",
       "      <td>88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>B.否</td>\n",
       "      <td>A.男；</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>B.否</td>\n",
       "      <td>B.女；</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  您认为您村社会风气是否得到改善  您的性别  频次\n",
       "0             A.是  A.男；  51\n",
       "1             A.是  B.女；  88\n",
       "2             B.否  A.男；  11\n",
       "3             B.否  B.女；  15"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sun_df = df.groupby([\"您认为您村社会风气是否得到改善\",'您的性别']).size().reset_index(name='频次')\n",
    "sun_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>频次</th>\n",
       "      <th>%</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为您村社会风气是否得到改善</th>\n",
       "      <th>您的性别</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">A.是</th>\n",
       "      <th>A.男；</th>\n",
       "      <td>51</td>\n",
       "      <td>82.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B.女；</th>\n",
       "      <td>88</td>\n",
       "      <td>85.44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">B.否</th>\n",
       "      <th>A.男；</th>\n",
       "      <td>11</td>\n",
       "      <td>17.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B.女；</th>\n",
       "      <td>15</td>\n",
       "      <td>14.56</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      频次      %\n",
       "您认为您村社会风气是否得到改善 您的性别           \n",
       "A.是             A.男；  51  82.26\n",
       "                B.女；  88  85.44\n",
       "B.否             A.男；  11  17.74\n",
       "                B.女；  15  14.56"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp = sun_df.set_index(['您认为您村社会风气是否得到改善','您的性别'])\n",
    "temp['%'] = 100 * (temp / temp.groupby('您的性别').sum())\n",
    "temp.round(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>您认为您村社会风气是否得到改善</th>\n",
       "      <th>您的性别</th>\n",
       "      <th>频次</th>\n",
       "      <th>%</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>A.是</td>\n",
       "      <td>A.男；</td>\n",
       "      <td>51</td>\n",
       "      <td>82.258065</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>A.是</td>\n",
       "      <td>B.女；</td>\n",
       "      <td>88</td>\n",
       "      <td>85.436893</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>B.否</td>\n",
       "      <td>A.男；</td>\n",
       "      <td>11</td>\n",
       "      <td>17.741935</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>B.否</td>\n",
       "      <td>B.女；</td>\n",
       "      <td>15</td>\n",
       "      <td>14.563107</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  您认为您村社会风气是否得到改善  您的性别  频次          %\n",
       "0             A.是  A.男；  51  82.258065\n",
       "1             A.是  B.女；  88  85.436893\n",
       "2             B.否  A.男；  11  17.741935\n",
       "3             B.否  B.女；  15  14.563107"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sun_df = temp.reset_index()\n",
    "sun_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "plotlyServerURL": "https://plot.ly"
       },
       "data": [
        {
         "branchvalues": "total",
         "domain": {
          "x": [
           0,
           1
          ],
          "y": [
           0,
           1
          ]
         },
         "hovertemplate": "labels=%{label}<br>%=%{value}<br>parent=%{parent}<br>id=%{id}<extra></extra>",
         "ids": [
          "A.是/A.男；",
          "B.否/A.男；",
          "A.是/B.女；",
          "B.否/B.女；",
          "A.是",
          "B.否"
         ],
         "labels": [
          "A.男；",
          "A.男；",
          "B.女；",
          "B.女；",
          "A.是",
          "B.否"
         ],
         "name": "",
         "parents": [
          "A.是",
          "B.否",
          "A.是",
          "B.否",
          "",
          ""
         ],
         "type": "sunburst",
         "values": [
          82.25806451612904,
          17.741935483870968,
          85.43689320388349,
          14.563106796116504,
          167.69495772001252,
          32.305042279987475
         ]
        }
       ],
       "layout": {
        "legend": {
         "tracegroupgap": 0
        },
        "margin": {
         "t": 60
        },
        "template": {
         "data": {
          "bar": [
           {
            "error_x": {
             "color": "#2a3f5f"
            },
            "error_y": {
             "color": "#2a3f5f"
            },
            "marker": {
             "line": {
              "color": "#E5ECF6",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "bar"
           }
          ],
          "barpolar": [
           {
            "marker": {
             "line": {
              "color": "#E5ECF6",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "barpolar"
           }
          ],
          "carpet": [
           {
            "aaxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "#2a3f5f"
            },
            "baxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "#2a3f5f"
            },
            "type": "carpet"
           }
          ],
          "choropleth": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "choropleth"
           }
          ],
          "contour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "contour"
           }
          ],
          "contourcarpet": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "contourcarpet"
           }
          ],
          "heatmap": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmap"
           }
          ],
          "heatmapgl": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmapgl"
           }
          ],
          "histogram": [
           {
            "marker": {
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "histogram"
           }
          ],
          "histogram2d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2d"
           }
          ],
          "histogram2dcontour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2dcontour"
           }
          ],
          "mesh3d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "mesh3d"
           }
          ],
          "parcoords": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "parcoords"
           }
          ],
          "pie": [
           {
            "automargin": true,
            "type": "pie"
           }
          ],
          "scatter": [
           {
            "fillpattern": {
             "fillmode": "overlay",
             "size": 10,
             "solidity": 0.2
            },
            "type": "scatter"
           }
          ],
          "scatter3d": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatter3d"
           }
          ],
          "scattercarpet": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattercarpet"
           }
          ],
          "scattergeo": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergeo"
           }
          ],
          "scattergl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergl"
           }
          ],
          "scattermapbox": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermapbox"
           }
          ],
          "scatterpolar": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolar"
           }
          ],
          "scatterpolargl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolargl"
           }
          ],
          "scatterternary": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterternary"
           }
          ],
          "surface": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "surface"
           }
          ],
          "table": [
           {
            "cells": {
             "fill": {
              "color": "#EBF0F8"
             },
             "line": {
              "color": "white"
             }
            },
            "header": {
             "fill": {
              "color": "#C8D4E3"
             },
             "line": {
              "color": "white"
             }
            },
            "type": "table"
           }
          ]
         },
         "layout": {
          "annotationdefaults": {
           "arrowcolor": "#2a3f5f",
           "arrowhead": 0,
           "arrowwidth": 1
          },
          "autotypenumbers": "strict",
          "coloraxis": {
           "colorbar": {
            "outlinewidth": 0,
            "ticks": ""
           }
          },
          "colorscale": {
           "diverging": [
            [
             0,
             "#8e0152"
            ],
            [
             0.1,
             "#c51b7d"
            ],
            [
             0.2,
             "#de77ae"
            ],
            [
             0.3,
             "#f1b6da"
            ],
            [
             0.4,
             "#fde0ef"
            ],
            [
             0.5,
             "#f7f7f7"
            ],
            [
             0.6,
             "#e6f5d0"
            ],
            [
             0.7,
             "#b8e186"
            ],
            [
             0.8,
             "#7fbc41"
            ],
            [
             0.9,
             "#4d9221"
            ],
            [
             1,
             "#276419"
            ]
           ],
           "sequential": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ],
           "sequentialminus": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ]
          },
          "colorway": [
           "#636efa",
           "#EF553B",
           "#00cc96",
           "#ab63fa",
           "#FFA15A",
           "#19d3f3",
           "#FF6692",
           "#B6E880",
           "#FF97FF",
           "#FECB52"
          ],
          "font": {
           "color": "#2a3f5f"
          },
          "geo": {
           "bgcolor": "white",
           "lakecolor": "white",
           "landcolor": "#E5ECF6",
           "showlakes": true,
           "showland": true,
           "subunitcolor": "white"
          },
          "hoverlabel": {
           "align": "left"
          },
          "hovermode": "closest",
          "mapbox": {
           "style": "light"
          },
          "paper_bgcolor": "white",
          "plot_bgcolor": "#E5ECF6",
          "polar": {
           "angularaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "bgcolor": "#E5ECF6",
           "radialaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           }
          },
          "scene": {
           "xaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           },
           "yaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           },
           "zaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           }
          },
          "shapedefaults": {
           "line": {
            "color": "#2a3f5f"
           }
          },
          "ternary": {
           "aaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "baxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "bgcolor": "#E5ECF6",
           "caxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           }
          },
          "title": {
           "x": 0.05
          },
          "xaxis": {
           "automargin": true,
           "gridcolor": "white",
           "linecolor": "white",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "white",
           "zerolinewidth": 2
          },
          "yaxis": {
           "automargin": true,
           "gridcolor": "white",
           "linecolor": "white",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "white",
           "zerolinewidth": 2
          }
         }
        }
       }
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = px.sunburst(sun_df,\n",
    "                  path=['您认为您村社会风气是否得到改善','您的性别'],\n",
    "                  values='%',\n",
    "                 )\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'tau_y值为：0.002，该值属于极弱相关或不相关。'"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tau_y = mytools.goodmanKruska_tau_y(df, '您的性别', '您认为您村社会风气是否得到改善')\n",
    "F'tau_y值为：{tau_y:.3f}，该值属于{mytools.draw_on_corr(tau_y)}。'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy import stats\n",
    "x=df['您的性别']\n",
    "y=df['您认为您村社会风气是否得到改善']\n",
    "chi2, p, dof, ex = stats.chi2_contingency(pd.crosstab(x, y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.10381042656780162, 0.7473040216209621)"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chi2,p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'p': 'p=0.747>0.05', 'tex_p': 'p>0.05', 'conclusion': '接收虚无假设，拒绝研究假设。'}"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mytools.p_result(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "165\n"
     ]
    }
   ],
   "source": [
    "N = df.shape[0]\n",
    "print(N)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "不同性别的大学生对待乡村社会风气无显著性差异，都是认为乡村振兴后社会风气变化较大。"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "解释性研究"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "描述统计"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>次数</th>\n",
       "      <th>比例</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>D.农田灌溉；</th>\n",
       "      <td>108</td>\n",
       "      <td>65.454545</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C.排水设施；</th>\n",
       "      <td>117</td>\n",
       "      <td>70.909091</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B.照明设施；</th>\n",
       "      <td>121</td>\n",
       "      <td>73.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>E.供水供电；</th>\n",
       "      <td>121</td>\n",
       "      <td>73.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>F.物流网点；</th>\n",
       "      <td>130</td>\n",
       "      <td>78.787879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>A.街道胡同；</th>\n",
       "      <td>130</td>\n",
       "      <td>78.787879</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          次数         比例\n",
       "D.农田灌溉；  108  65.454545\n",
       "C.排水设施；  117  70.909091\n",
       "B.照明设施；  121  73.333333\n",
       "E.供水供电；  121  73.333333\n",
       "F.物流网点；  130  78.787879\n",
       "A.街道胡同；  130  78.787879"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "important_factors = mytools.gen_mcq_df(df,'您认为乡村振兴后有哪些基础设施得到改善')\n",
    "important_factors = important_factors.sort_values(by='比例')\n",
    "important_factors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "plotlyServerURL": "https://plot.ly"
       },
       "data": [
        {
         "alignmentgroup": "True",
         "hovertemplate": "比例=%{x}<br>index=%{y}<extra></extra>",
         "legendgroup": "",
         "marker": {
          "color": "#636efa",
          "pattern": {
           "shape": ""
          }
         },
         "name": "",
         "offsetgroup": "",
         "orientation": "h",
         "showlegend": false,
         "textposition": "auto",
         "type": "bar",
         "x": [
          65.45454545454545,
          70.9090909090909,
          73.33333333333333,
          73.33333333333333,
          78.78787878787878,
          78.78787878787878
         ],
         "xaxis": "x",
         "y": [
          "D.农田灌溉；",
          "C.排水设施；",
          "B.照明设施；",
          "E.供水供电；",
          "F.物流网点；",
          "A.街道胡同；"
         ],
         "yaxis": "y"
        }
       ],
       "layout": {
        "barmode": "relative",
        "legend": {
         "tracegroupgap": 0
        },
        "margin": {
         "t": 60
        },
        "template": {
         "data": {
          "bar": [
           {
            "error_x": {
             "color": "#2a3f5f"
            },
            "error_y": {
             "color": "#2a3f5f"
            },
            "marker": {
             "line": {
              "color": "#E5ECF6",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "bar"
           }
          ],
          "barpolar": [
           {
            "marker": {
             "line": {
              "color": "#E5ECF6",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "barpolar"
           }
          ],
          "carpet": [
           {
            "aaxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "#2a3f5f"
            },
            "baxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "#2a3f5f"
            },
            "type": "carpet"
           }
          ],
          "choropleth": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "choropleth"
           }
          ],
          "contour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "contour"
           }
          ],
          "contourcarpet": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "contourcarpet"
           }
          ],
          "heatmap": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmap"
           }
          ],
          "heatmapgl": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmapgl"
           }
          ],
          "histogram": [
           {
            "marker": {
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "histogram"
           }
          ],
          "histogram2d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2d"
           }
          ],
          "histogram2dcontour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2dcontour"
           }
          ],
          "mesh3d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "mesh3d"
           }
          ],
          "parcoords": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "parcoords"
           }
          ],
          "pie": [
           {
            "automargin": true,
            "type": "pie"
           }
          ],
          "scatter": [
           {
            "fillpattern": {
             "fillmode": "overlay",
             "size": 10,
             "solidity": 0.2
            },
            "type": "scatter"
           }
          ],
          "scatter3d": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatter3d"
           }
          ],
          "scattercarpet": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattercarpet"
           }
          ],
          "scattergeo": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergeo"
           }
          ],
          "scattergl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergl"
           }
          ],
          "scattermapbox": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermapbox"
           }
          ],
          "scatterpolar": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolar"
           }
          ],
          "scatterpolargl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolargl"
           }
          ],
          "scatterternary": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterternary"
           }
          ],
          "surface": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "surface"
           }
          ],
          "table": [
           {
            "cells": {
             "fill": {
              "color": "#EBF0F8"
             },
             "line": {
              "color": "white"
             }
            },
            "header": {
             "fill": {
              "color": "#C8D4E3"
             },
             "line": {
              "color": "white"
             }
            },
            "type": "table"
           }
          ]
         },
         "layout": {
          "annotationdefaults": {
           "arrowcolor": "#2a3f5f",
           "arrowhead": 0,
           "arrowwidth": 1
          },
          "autotypenumbers": "strict",
          "coloraxis": {
           "colorbar": {
            "outlinewidth": 0,
            "ticks": ""
           }
          },
          "colorscale": {
           "diverging": [
            [
             0,
             "#8e0152"
            ],
            [
             0.1,
             "#c51b7d"
            ],
            [
             0.2,
             "#de77ae"
            ],
            [
             0.3,
             "#f1b6da"
            ],
            [
             0.4,
             "#fde0ef"
            ],
            [
             0.5,
             "#f7f7f7"
            ],
            [
             0.6,
             "#e6f5d0"
            ],
            [
             0.7,
             "#b8e186"
            ],
            [
             0.8,
             "#7fbc41"
            ],
            [
             0.9,
             "#4d9221"
            ],
            [
             1,
             "#276419"
            ]
           ],
           "sequential": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ],
           "sequentialminus": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ]
          },
          "colorway": [
           "#636efa",
           "#EF553B",
           "#00cc96",
           "#ab63fa",
           "#FFA15A",
           "#19d3f3",
           "#FF6692",
           "#B6E880",
           "#FF97FF",
           "#FECB52"
          ],
          "font": {
           "color": "#2a3f5f"
          },
          "geo": {
           "bgcolor": "white",
           "lakecolor": "white",
           "landcolor": "#E5ECF6",
           "showlakes": true,
           "showland": true,
           "subunitcolor": "white"
          },
          "hoverlabel": {
           "align": "left"
          },
          "hovermode": "closest",
          "mapbox": {
           "style": "light"
          },
          "paper_bgcolor": "white",
          "plot_bgcolor": "#E5ECF6",
          "polar": {
           "angularaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "bgcolor": "#E5ECF6",
           "radialaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           }
          },
          "scene": {
           "xaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           },
           "yaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           },
           "zaxis": {
            "backgroundcolor": "#E5ECF6",
            "gridcolor": "white",
            "gridwidth": 2,
            "linecolor": "white",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "white"
           }
          },
          "shapedefaults": {
           "line": {
            "color": "#2a3f5f"
           }
          },
          "ternary": {
           "aaxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "baxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           },
           "bgcolor": "#E5ECF6",
           "caxis": {
            "gridcolor": "white",
            "linecolor": "white",
            "ticks": ""
           }
          },
          "title": {
           "x": 0.05
          },
          "xaxis": {
           "automargin": true,
           "gridcolor": "white",
           "linecolor": "white",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "white",
           "zerolinewidth": 2
          },
          "yaxis": {
           "automargin": true,
           "gridcolor": "white",
           "linecolor": "white",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "white",
           "zerolinewidth": 2
          }
         }
        },
        "xaxis": {
         "anchor": "y",
         "domain": [
          0,
          1
         ],
         "title": {
          "text": "比例"
         }
        },
        "yaxis": {
         "anchor": "x",
         "domain": [
          0,
          1
         ],
         "title": {
          "text": "index"
         }
        }
       }
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = px.bar(important_factors, x=\"比例\",orientation='h')\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>您的性别</th>\n",
       "      <th>A.男；</th>\n",
       "      <th>B.女；</th>\n",
       "      <th>合计</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>您认为您村治安环境是否得到改善</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>A.是</th>\n",
       "      <td>88.71</td>\n",
       "      <td>90.29</td>\n",
       "      <td>89.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B.否</th>\n",
       "      <td>11.29</td>\n",
       "      <td>9.71</td>\n",
       "      <td>10.3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "您的性别              A.男；   B.女；    合计\n",
       "您认为您村治安环境是否得到改善                    \n",
       "A.是              88.71  90.29  89.7\n",
       "B.否              11.29   9.71  10.3"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cat_dtype = CategoricalDtype(\n",
    "    categories=['A.是','B.否' ], ordered=True)\n",
    "df = df.astype({'您认为您村治安环境是否得到改善':cat_dtype})\n",
    "\n",
    "result = pd.crosstab(\n",
    "        df['您认为您村治安环境是否得到改善'],\n",
    "        df['您的性别'],\n",
    "        normalize='columns',\n",
    "        margins=True,\n",
    "        margins_name='合计',\n",
    "    )*100\n",
    "result.round(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.015815847165674912"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import scipy.stats as stats\n",
    "x = df['您的性别'].cat.codes\n",
    "y = df['您认为您村治安环境是否得到改善'].cat.codes\n",
    "dy = stats.somersd(x, y)\n",
    "dy.statistic"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'萨莫司dy值为：-0.016，该值属于极弱相关或不相关，p值为0.750，接收虚无假设，拒绝研究假设。'"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p = dy.pvalue\n",
    "f\"萨莫司dy值为：{dy.statistic:.3f}，该值属于{mytools.draw_on_corr(dy.statistic)}，p值为{p:.3f}，{mytools.p_result(p)['conclusion']}\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['感知评价维度']= df['您认为您村治安环境是否得到改善'].cat.codes + df['您认为乡村振兴较侧重于哪一方面'].cat.codes + df['您认为乡村振兴后的家庭幸福标准是'].cat.codes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    165.000000\n",
       "mean       2.460606\n",
       "std        1.128873\n",
       "min        0.000000\n",
       "25%        2.000000\n",
       "50%        2.000000\n",
       "75%        3.000000\n",
       "max        5.000000\n",
       "Name: 性别认知维度, dtype: float64"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['性别认知维度']= df['您的性别'].cat.codes + df['您认为您村治安环境是否得到改善'].cat.codes + df['您认为乡村振兴后的家庭幸福标准是'].cat.codes\n",
    "df['性别认知维度'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABHgAAANaCAYAAADyMfvwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAB7CAAAewgFu0HU+AADBQ0lEQVR4nOzdeXhU5d3/8c/MZJmELOwJkLCETdkRZZGlKloWAbXVKBa0ii3iVoWKWm1/VLQqCuqjVXGpC4oYca0i4oICmoAiOyJgWJJARgTJQshMMjO/P2iiCIHMzDkzmZn367q81Jwz3/Plee6O53xyn/u2eL1erwAAAAAAABC2rKFuAAAAAAAAAIEh4AEAAAAAAAhzBDwAAAAAAABhjoAHAAAAAAAgzBHwAAAAAAAAhDkCHgAAAAAAgDBHwAMAAAAAABDmCHgAAAAAAADCHAEPAAAAAABAmCPgAQAAAAAACHMEPAAAAAAAAGGOgAcAAAAAACDMEfAAAAAAAACEOQIeAAAAAACAMEfAAwAAAAAAEOYIeAAAAAAAAMIcAQ8AAAAAAECYiwl1A2g4KisrtWHDBklSixYtFBPD8AAAAAAAwGjV1dXat2+fJKlnz56y2+0B1+QJHrU2bNig/v37h7oNAAAAAACixqpVq3TGGWcEXIdXtAAAAAAAAMIcM3hQq0WLFrX/vGrVKrVq1SqE3QAAAAAAEJn27t1b+wbNL5/FA0HAg1q/XHOnVatWysjICGE3AAAAAABEPqPWv+UVLQAAAAAAgDAX9QHPlClTZLFYtHPnzuMet1gs9f7rj3/8oyE9Pf744ye91ooVKwy5FgAAAAAACH9R/YrWAw88oKeeeuqE58THx5+0TlVVlTwej6xWY/KyvLw8SVJsbGydNY26FgAAAAAACH9RG/DMmTNHd9xxx0nPq6ysPOHxsrIyde7cWQ6HQ1dccYUhva1cuVKS9OWXX+r00083pCYAAAAAAIhcUTcNpKKiQuPHj9e0adMMWUT4vvvuk8Ph0O9//3udddZZAdfbv3+/tm/frri4OPXs2TPgegAAAAAAIPJFXcAzY8YMLViwQAMGDNCqVasCqrVr1y49/PDDstvteuihhwzpr+b1rL59+9br9TAAAAAAAICoC3isVqtmzpypFStWKD09PaBat912myorKzVt2jS1b9/ekP5yc3MlScOGDTOkHgAAAAAAiHxRtwbPzJkzFRsbG3CdDRs2KCcnRykpKbr11lsN6OyImoAnPz9fw4YN0+bNm3Xo0CG1bdtWo0eP1tSpU5WZmWnY9QAAAAAAQPiLuhk8RoQ70pG1d7xer6677jqlpqYaUtPtdte+NvbGG29o06ZN6t69u0477TQVFBTokUce0amnnqqlS5cacj0AAAAAABAZom4GjxHy8/OVk5Mju92um2++2bC6a9euVXl5uaxWqx566CFdd911tevw7Nu3T1dffbXee+89XXrppfr++++VnJzsU/3CwsITHt+7d6/fvQMAAAAAgNAh4PHDrFmz5Ha79ac//UlpaWmG1c3KytKSJUuUkJCgIUOGHHWsRYsWeuONN9SlSxft2rVLL774om644Qaf6vNqFwAAAAAAkSnqXtEKVGlpqV566SVJ0nXXXWdo7SZNmui88847JtypERcXp4kTJ0qSFi9ebOi1AQAAAABA+GIGj48WLFigw4cPq3fv3urZs2fQr5+RkSHpyGtiviooKDjh8b1796p///5+9QUAAAAAAEKHgMdHzz//vCTVzqQxmsvlUmxsrCwWy3GP79u3T5LqPH4iNeEQAAAAAACILLyi5YMtW7YoLy9PNptNl19+ueH1r7nmGjVp0kR5eXl1nlOzg1aXLl0Mvz4AAAAAAAhPBDw+yMnJkSSdccYZatWqleH14+LiVFFRoccee+y4x5cvX14b8Pzud78z/PoAAAAAACA8EfD4YNGiRZKks88+25T6N910k2JjY/Xqq6/qkUcekdvtrj22ZMkSXXjhhfJ6verTp4/Gjx9vSg8AAAAAACD8EPDU048//qivvvpKUv0Cnl27dslut8tut2vevHn1usYpp5yixx57TFarVbfccotatWql/v37KysrSyNGjNCBAwc0ePBgLVq0SDExLJ8EAAAAAACOIOCppw8//FAej0dxcXEaPHjwSc/3er1yOp1yOp1HzcQ5mcmTJ+uLL77QBRdcoKqqKq1bt05Op1MXXnihFi5cqGXLlpnyehgAAAAAAAhfFq/X6w11E2gYCgsLlZmZKenIlursugUAAAAAgPHMeP5mBg8AAAAAAECYYyEXAAAA4CTKKqtUXFKpQy63GsXZlJ5qV7I9NtRtAX7Ze/CwNu0p0YGKKjVNjFX31qlq1Tgh1G0BfmE8/4yABwAAADgOr9er3Pz9mpe7S0s2O+T2/Lyygc1q0YjuaZowsJ0GZTWTxWIJYafAyXk8Hj33xQ49u3yHHKXOY46np8Rr0tAOmjS4g6xWXvRAw8Z4Pj7W4EEt1uABAAA4YmNRiabmrNVWR/lJz+2SlqQ52X3Uo01qEDoDfPf2miJNX7heLrfnpOfG2ayadXEvXdi3TRA6A3wXKeOZNXgAAAAAky3ftk/Zc3PrFe5I0lZHubLn5mr5tn0mdwb47onPtuvm19bW62FYklxuj25+ba2e+Gy7yZ0BvmM8nxgBDwAAAPA/G4tKNHnealW43D59rsLl1uR5q7WxqMSkzgDfvb2mSLMWf+fXZ2ct/k5vrykyuCPAf4znkyPgAQAAAHRkzZ2pOWt9DndqVLjcmpazTqyAgIbA4/Fo+sL1AdWY/sZ6eTz1mykBmInxXD8EPAAAAICk3Pz99X4tqy7fOcqUl3/AoI4A/z33xY56v8ZSF1e1R89/sdOYhoAAMJ7rh4AHAAAAkPRy3q4GVQcIxHPLdxhS59kVxtQBAsF4rh8CHgAAAES9ssoqfbjJYUitxZuKVVZZZUgtwB97Dx5W8XG2jvarVkml9h48bEgtwB+M5/oj4AEAAEDUKy6plNtjzNo5bo9XjtJKQ2oB/ti0x9jFvjfvLTW0HuALxnP9EfAAAAAg6h3yc2HlupQ7ja0H+OJAhbEzyPYfchlaD/AF47n+CHgAAAAQ9RrF2QytlxRvbD3AF00TYw2t16xRnKH1AF8wnuuPgAcAAABRLz3VLpvVYkitGKtFaSl2Q2oB/ujeOtXQet1apRhaD/AF47n+CHgAAAAQ9ZLtsRrRPc2QWiO6pyvZbuxvnAFftGqcoPSUeGNqpdrVqnGCIbUAfzCe64+ABwAAAJA0YWC7BlUHCMSkoR0MqXPNEGPqAIFgPNcPAQ8AAAAgaVBWM3VJSwqoRte0ZA3MampQR4D/Jg3uoDhbYI97cTFWXTW4vTENAQFgPNcPAQ8AAAAgyWKxaE52HyX6ueByYpxNs7N7y2IxZi0fIBBWq1WzLu4VUI1Zv+8lq5VHRoQe47l+IvtPBwAAAPigR5tUzZ3Yz+eQJzHOprkT+6lHG2MXAwUCcWHfNpo+sqtfn50+sqsu7NvG4I4A/zGeT46ABwAAAPiFoZ1bKGfyoHq/rtU1LVk5kwdpaOcWJncG+O66szrpkUv71Pv1lrgYqx65tI+uO6uTyZ0BvmM8n5jF6/V6Q90EGobCwkJlZmZKkgoKCpSRkRHijgAAAELH6/UqL/+A5uXt1IebHHJ7fr5tjrFaNKJ7uiYMbKeBWU15LQsNnsfj0fNf7NQzy/NVXOo85nirVLuuGdJBVw1uH/GvsSD8RcJ4NuP5m4AHtQh4AAAAjq+sskqO0kqVO91KircpLcXOVugIW3sPHtbmvaXaf8ilZo3i1K1VSkRvHY3IFq7j2Yzn75iAKwAAAAARLtkeS6CDiNGqcUJYPAAD9cF4/lnDnKsEAAAAAACAeiPgAQAAAAAACHMEPAAAAAAAAGGOgAcAAAAAACDMEfAAAAAAAACEOQIeAAAAAACAMEfAAwAAAAAAEOYIeAAAAAAAAMIcAQ8AAAAAAECYI+ABAAAAAAAIcwQ8AAAAAAAAYY6ABwAAAAAAIMwR8AAAAAAAAIQ5Ah4AAAAAAIAwR8ADAAAAAAAQ5gh4AAAAAAAAwhwBDwAAAAAAQJiLCXUDAAAg8pRVVqm4pFKHXG41irMpPdWuZHtsqNsC/MaYRiTZ7ijTl9//qB/KXWqZFKczOzZXp7TkULcFIEAEPAAAwBBer1e5+fs1L3eXlmx2yO3x1h6zWS0a0T1NEwa206CsZrJYLCHsFKgfxjQiidvt1j/e3aSFq4vkrPYcczw+xqqL+7XR3eO6y2azhaBDAIGyeL1e78lPQzQoLCxUZmamJKmgoEAZGRkh7ggAEC42FpVoas5abXWUn/TcLmlJmpPdRz3apAahM8A/jGlEksc+2aY5H21VfR78LJKmntdFNw7vbHZbQFQz4/mbNXgAAEBAlm/bp+y5ufV6EJakrY5yZc/N1fJt+0zuDPAPYxqRZPrCdZpdz3BHkrySZn+0VdMXrjOzLQAmIOABAAB+21hUosnzVqvC5fbpcxUutybPW62NRSUmdQb4hzGNSPLYJ9uU83WhX5/N+bpQj32yzeCOAJiJgAcAAPjF6/Vqas5anx+Ea1S43JqWs068LY6GgjGNSOJ2uzXno60B1Zjz0Va53f797wFA8BHwAAAAv+Tm76/3Kyx1+c5Rprz8AwZ1BASGMY1I8o93N9X7tay6eCXN+O9mI9oBEAQEPAAAwC8v5+1qUHWAQDGmEUkWri4ypM7rq/17xQtA8BHwAAAAn5VVVunDTQ5Dai3eVKyyyipDagH+Ykwjkmx3lB13K3R/VFZ5tN1RZkgtAOYi4AEAAD4rLqmU22PMOiNuj1eO0kpDagH+Ykwjknz5/Y+G1svN329oPQDmIOABAAA+O+TnIrR1KXeyiCdCizGNSPJDucvQeo4yp6H1AJiDgAcAAPisUZzN0HpJ8cbWA3zFmEYkaZkUZ2i9tOR4Q+sBMAcBDwAA8Fl6ql02q8WQWjFWi9JS7IbUAvzFmEYkObNjc0PrDcpqZmg9AOYg4AEAAD5LtsdqRPc0Q2qN6J6uZHusIbUAfzGmEUk6pSUrPsaYRz17rFWd0pINqQXAXAQ8AADALxMGtmtQdYBAMaYRSS7u18aQOpf0yzCkDgDzEfAAAAC/DMpqpi5pSQHV6JqWrIFZTQ3qCAgMYxqR5O5x3RXoS4cWSTPGdjOiHQBBQMADAAD8YrFYNCe7jxL9XJw2Mc6m2dm9ZbEYs+4JECjGNCKJzWbT1PO6BFRj6nldZLOxYDgQLgh4AACA33q0SdXcif18fiBOjLNp7sR+6tEm1aTOAP8wphFJbhzeWdmn+/eKVfbpGbpxeGeDOwJgJgIeAAAQkKGdWyhn8qB6v9rSNS1ZOZMHaWjnFiZ3BviHMY1IMuvi3pp2Xpd6v65lkTTtvC6adXFvM9sCYAKL1+v1hroJNAyFhYXKzMyUJBUUFCgjgwXVAAD15/V6lZd/QPPydurDTQ65PT/fYsRYLRrRPV0TBrbTwKymvMKCsMCYRiRxu92a8d/Nyvm6UM5qzzHH7bFWXdIvQzPGduO1LCAIzHj+JuBBLQIeAIBRyiqr5CitVLnTraR4m9JS7GwbjbDGmEYk2e4oU27+fjnKnEpLjtegrGZshQ4EmRnP3zEBVwAAAPiVZHssD7+IKIxpRJJOackEOkAEYg0eAAAAAACAMEfAAwAAAAAAEOYIeAAAAAAAAMIcAQ8AAAAAAECYI+ABAAAAAAAIcwQ8AAAAAAAAYY6ABwAAAAAAIMwR8AAAAAAAAIQ5Ah4AAAAAAIAwR8ADAAAAAAAQ5gh4AAAAAAAAwhwBDwAAAAAAQJgj4AEAAAAAAAhzBDwAAAAAAABhjoAHAAAAAAAgzBHwAAAAAAAAhDkCHgAAAAAAgDBHwAMAAAAAABDmYkLdAADgiLLKKhWXVOqQy61GcTalp9qVbI8NdVuAX/YePKxNe0p0oKJKTRNj1b11qlo1Tgh1WwAAcc8BRKqoD3imTJmip556Sjt27FD79u2Pe857772nsWPHnrDOvHnzNGHCBMP6+uabbzRz5kwtW7ZMFRUV6tu3r/7+979r1KhRhl0DQOh5vV7l5u/XvNxdWrLZIbfHW3vMZrVoRPc0TRjYToOymslisYSwU+DkPB6Pnvtih55dvkOOUucxx9NT4jVpaAdNGtxBViuTiAEgmLjnACJfVAc8DzzwgJ566qmTnpeXlydJiomJkc1mO+45df3cHx988IEuuOACVVVVSZIsFotyc3N1/vnn65lnntGkSZMMuxaA0NlYVKKpOWu11VF+3ONuj1eLNhRr0YZidUlL0pzsPurRJjXIXQL18/aaIk1fuF4ut6fOc4pLnbr3/S16cPFWzbq4ly7s2yaIHQJA9OKeA4gOUfvrszlz5uiOO+6o17krV66UJL366quqrKw87l/jx483pK/t27fr4osvVlVVlfr27au1a9equrpaH374oRo3bqybbrpJO3bsMORaAEJn+bZ9yp6bW+eN1q9tdZQre26ulm/bZ3JngO+e+Gy7bn5t7QnDnV9yuT26+bW1euKz7SZ3BgDgngOIHlEX8FRUVGj8+PGaNm2aMjIyTnq+1+vVV199JUk6/fTTzW5Pd9xxhyoqKpSWlqaPPvpIvXv3ltVq1W9/+1s9+uijqqio0G233WZ6HwDMs7GoRJPnrVaFy+3T5ypcbk2et1obi0pM6gzw3dtrijRr8Xd+fXbW4u/09poigzsCANTgngOILlEX8MyYMUMLFizQgAEDtGrVqpOev3nzZpWUlCgtLa3ONXqM8sMPP+jNN9+UJE2fPl3NmjU76vj48ePVunVrvf/++6qsrDS1FwDm8Hq9mpqz1ucbrRoVLrem5ayT1+s9+cmAyTwej6YvXB9QjelvrJfHU7+ZPwCA+uOeA4g+URfwWK1WzZw5UytWrFB6evpJz8/NzZUkDRs2zOzW9MUXX9Te5F5yySXHHI+JidF5552niooKLVu2zPR+ABgvN39/vadI1+U7R5ny8g8Y1BHgv+e+2FHv17Lq4qr26PkvdhrTEACgFvccQPSJuoBn5syZuuuuuxQTU7/1pWsCntLSUo0YMULp6emy2+3KysrSn//8Z23evNmw3rZvP7IWQUZGhjIzM497Tq9evSRJW7ZsMey6AILn5bxdDaoOEIjnlhuzJtyzK1hbDgCMxj0HEH2ibhet2NhYn87/8ssvJUkffvihkpOT1aNHD8XGxmrdunV65pln9MILL+j555/XH/7wh4B7279/vySpS5cudZ7TsmVLSdLOnTt9rl9YWHjC43v37vW5JoD6K6us0oebHIbUWrypWGWVVUq2+/adBhhl78HDKj7OVuh+1Sqp1N6Dh9WqcYIh9QAg2nHPAUSnqAt4fPHjjz/qu++OLBx522236c4771RycrIkqaysTFOnTtWzzz6rSZMmaejQoWrbtm1A13M6j9woN2nSpM5zao75E8bUNSsIQHAUl1TK7THmPXa3xytHaSU3WwiZTXuMXXhz895SAh4AMAj3HEB0irpXtHyRmJiojz/+WB9++KHuv//+2nBHkpKTk/X0009r0KBBcjqd+r//+7+Ar2ez2WqvW5e4uDhJ0uHDhwO+HoDgOuTnIod1KXcaWw/wxYGKKkPr7T/kMrQeAEQz7jmA6MQMnhNITEzUOeecU+dxi8WiSZMmKTc3V4sXL9ZDDz0U0PUSEo785rImxDkeq/VIJldRUeFz/YKCghMe37t3r/r37+9zXQD10yjOZmi9pHhj6wG+aJpo7G9ymzWq+799AADfcM8BRCcCngBlZGRIkvLz8wOuVfP6VVFRUZ3n/PTTT5Lk13aFNb0CCI30VLtsVoshU6ZjrBalpdgN6ArwT/fWqYbW69YqxdB6ABDNuOcAohOvaJ2E2+1WdXV1ncf37dsn6chsnkDVrOGzY0fdu4k4HEcWS0tKSgr4egCCK9keqxHd0wypNaJ7Ou/CI6RaNU5Qekq8MbVS7ay/AwAG4p4DiE4EPCfw//7f/1OzZs30+uuv13nO0qVLJZ1456v66tevnyTp+++/18GDB497Tl5eniQFvKAzgNCYMLBdg6oDBGLS0A6G1LlmiDF1AAA/454DiD4EPCfQqFEjlZSU6PHHHz/u8e3bt2v+/PmSpN/97ncBX69Dhw7q2LGjqqurtXDhwmOOu91uffrpp5Kk0047LeDrAQi+QVnN1CUtsBl4XdOSNTCrqUEdAf6bNLiD4myB3UrExVh11eD2xjQEAKjFPQcQfQh4TmDSpElq3LixvvzyS916662125hL0urVq3XuueeqsrJSmZmZuvHGGw255h//+EdJ0j333KOysrKjjr344ovas2ePYmJiNGLECEOuByC4LBaL5mT3UaKfix8mxtk0O7u3Ia+FAoGyWq2adXGvgGrM+n2v2g0EAADG4Z4DiD7cUZ1As2bNNG/ePMXHx+uhhx5Senq6zjjjDHXt2lWnn366du3apW7dumnJkiVq3LjxUZ9dtmyZ7Ha77Ha7li1bVu9rTp48WY0bN9auXbv029/+VuvXr9ehQ4f03HPP6frrr5ckXX755UpPTzfyjwogiHq0SdXcif18vuFKjLNp7sR+6tHG2MVtgUBc2LeNpo/s6tdnp4/sqgv7tjG4IwBADe45gOhCwHMSY8aM0Zo1a/SHP/xBsbGxWrdunUpKSjRy5Eg999xzWrNmjU455ZRjPufxeOR0OuV0OuXxeOp9vRYtWmj+/Pmy2+3Ky8tT7969lZSUpGuuuUaVlZXq0KFDwNuxAwi9oZ1bKGfyoHpPne6alqycyYM0tHMLkzsDfHfdWZ30yKV96v26VlyMVY9c2kfXndXJ5M4AANxzANHD4vVnv22Ybt26dbr55pv12WefSToyDf73v/+9HnvsMaWlGbMi/q8VFhYqMzNTklRQUMC26kAQeL1e5eUf0Ly8nfpwk+Oo7UxjrBaN6J6uCQPbaWBWU6ZIo8HzeDx6/oudemZ5vopLncccb5Vq1zVDOuiqwe15LQsAgox7DqBhMeP5m4CngduzZ4+KioqUlZWlZs2amXotAh4gtMoqq+QorVS5062keJvSUuxsS4qwtffgYW3eW6r9h1xq1ihO3VqlsBU6ADQQ3HMAoWfG83dMwBVgqtatW6t169ahbgNAECTbY7m5QsRo1TiBQAcAGijuOYDIxPxoAAAAAACAMEfAAwAAAAAAEOYIeAAAAAAAAMIcAQ8AAAAAAECYI+ABAAAAAAAIcwQ8AAAAAAAAYY6ABwAAAAAAIMwR8AAAAAAAAIQ5Ah4AAAAAAIAwR8ADAAAAAAAQ5gh4AAAAAAAAwhwBDwAAAAAAQJgj4AEAAAAAAAhzBDwAAAAAAABhjoAHAAAAAAAgzBHwAAAAAAAAhDkCHgAAAAAAgDAXE+oGgECUVVapuKRSh1xuNYqzKT3VrmR7bKjbAvzCeEYkWbf7J330rUOOMqfSkuN13qlp6t22SajbAgAAiFgEPAg7Xq9Xufn7NS93l5Zsdsjt8dYes1ktGtE9TRMGttOgrGayWCwh7BQ4OcYzIkl1dbUmv/yNln63T78YypKkx5d+L6tFOrtrC82dcJpiYrgFAQAAMJLF6/V6T34aokFhYaEyMzMlSQUFBcrIyAhxR8faWFSiqTlrtdVRftJzu6QlaU52H/VokxqEzgDfMZ4RSe56a4NeXrm73udPGNBW91zU08SOAAAAGi4znr9ZgwdhY/m2fcqem1uvh2FJ2uooV/bcXC3fts/kzgDfMZ4RSa54bqVP4Y4kvbxyt654bqVJHQEAAEQfAh6EhY1FJZo8b7UqXG6fPlfhcmvyvNXaWFRiUmeA7xjPiCR3vbVBy7b96Ndnl237UXe9tcHgjgAAAKITAQ8aPK/Xq6k5a31+GK5R4XJrWs468TYiGgLGMyJJdXW1zzN3fu3llbtVXV1tUEcAAADRi4AHDV5u/v56v8ZSl+8cZcrLP2BQR4D/GM+IJJNf/saQOlNeWWNIHQAAgGhGwIMG7+W8XQ2qDhAIxjMiydLvjFkT6pMtPxhSBwAAIJoR8KBBK6us0oebHIbUWrypWGWVVYbUAvzBeEYkWbf7p2O2QveXx3ukHgAAAPxHwIMGrbikUm6DniDcHq8cpZWG1AL8wXhGJPnoW2PCyhofM4sHAAAgIAQ8aNAO+bkQbV3KncbWA3zBeEYkcZQ5Da1XTGAJAAAQEAIeNGiN4myG1kuKN7Ye4AvGMyJJWnK8ofXSU+yG1gMAAIg2BDxo0NJT7bJZLYbUirFalMYDBEKI8YxIct6paYbWO/eUlobWAwAAiDYEPGjQku2xGtHdmIeIEd3TlWyPNaQW4A/GMyJJ77ZNZFBeKavlSD0AAAD4j4AHDd6Ege0aVB0gEIxnRJKzu7YwpM5wZu8AAAAEjIAHDd6grGbqkpYUUI2uackamNXUoI4A/zGeEUnmTjjNkDpP/qGvIXUAAACiGQEPGjyLxaI52X2U6OcCtYlxNs3O7i2LxaB3CYAAMJ4RSWJiYjRhQNuAakwY0FYxMTEGdQQAABC9CHgQFnq0SdXcif18fihOjLNp7sR+6tEm1aTOAN8xnhFJ7rmop4Z1bu7XZ4d1bq57LuppcEcAAADRiYAHYWNo5xbKmTyo3q+3dE1LVs7kQRra2Zg1IgAjMZ4RSV6aNMDnmTwTBrTVS5MGmNQRAABA9LF4vV5vqJtAw1BYWKjMzExJUkFBgTIyMkLc0fF5vV7l5R/QvLyd+nCTQ27Pz0M4xmrRiO7pmjCwnQZmNeU1FjR4jGdEkurqak15ZY0+2fKDPMe5u7Bajiyo/OQf+vJaFgAAiGpmPH8T8KBWuAQ8v1RWWSVHaaXKnW4lxduUlmJn62iELcYzIsm63T/p4y0/qLi0Uukpdp17Sku2QgcAAPgfM56/+fUZwlqyPZYHYEQMxjMiSe+2TQh0AAAAgog1eAAAAAAAAMIcAQ8AAAAAAECYI+ABAAAAAAAIcwQ8AAAAAAAAYY6ABwAAAAAAIMwR8AAAAAAAAIQ5Ah4AAAAAAIAwR8ADAAAAAAAQ5gh4AAAAAAAAwhwBDwAAAAAAQJgj4AEAAAAAAAhzBDwAAAAAAABhjoAHAAAAAAAgzBHwAAAAAAAAhDkCHgAAAAAAgDBHwAMAAAAAABDmCHgAAAAAAADCHAEPAAAAAABAmIsJdQMAgCPKKqtUXFKpQy63GsXZlJ5qV7I9NtRtAX7Ze/CwNu0p0YGKKjVNjFX31qlq1Tgh1G0BAMQ9BxCpCHgAIIS8Xq9y8/drXu4uLdnskNvjrT1ms1o0onuaJgxsp0FZzWSxWELYKXByHo9Hz32xQ88u3yFHqfOY4+kp8Zo0tIMmDe4gq5VJxAAQTNxzAJHP4vV6vSc/DdGgsLBQmZmZkqSCggJlZGSEuCMgsm0sKtHUnLXa6ig/6bld0pI0J7uPerRJDUJngO/eXlOk6QvXy+X2nPTcOJtVsy7upQv7tglCZwAA7jmAhseM529+fQYAIbB82z5lz82t142WJG11lCt7bq6Wb9tncmeA7574bLtufm1tvcIdSXK5Pbr5tbV64rPtJncGAOCeA4geBDwAEGQbi0o0ed5qVbjcPn2uwuXW5HmrtbGoxKTOAN+9vaZIsxZ/59dnZy3+Tm+vKTK4IwBADe45gOhCwAMAQeT1ejU1Z63PN1o1KlxuTctZJ96uRUPg8Xg0feH6gGpMf2O9PJ76zfwBANQf9xxA9CHgAYAgys3fX+8p0nX5zlGmvPwDBnUE+O+5L3bU+7WsuriqPXr+i53GNAQAqMU9BxB9CHgAIIheztvVoOoAgXhu+Q5D6jy7wpg6AICfcc8BRB8CHgAIkrLKKn24yWFIrcWbilVWWWVILcAfew8eVvFxtkL3q1ZJpfYePGxILQAA9xxAtCLgAYAgKS6plNtjzHvsbo9XjtJKQ2oB/ti0x9iFNzfvLTW0HgBEM+45gOhEwAMAQXLIz0UO61LuNLYe4IsDFcb+Nnf/IZeh9QAgmnHPAUQnAh4ACJJGcTZD6yXFG1sP8EXTxFhD6zVrFGdoPQCIZtxzANGJgAcAgiQ91S6b1WJIrRirRWkpdkNqAf7o3jrV0HrdWqUYWg8Aohn3HEB0IuABgCBJtsdqRPc0Q2qN6J6uZLuxMygAX7RqnKD0lHhjaqXa1apxgiG1AADccwDRioAHAIJowsB2DaoOEIhJQzsYUueaIcbUAQD8jHsOIPoQ8ABAEA3KaqYuaUkB1eialqyBWU0N6gjw36TBHRRnC+xWIi7GqqsGtzemIQBALe45gOhDwAMAQWSxWDQnu48S/Vz8MDHOptnZvWWxGPNePRAIq9WqWRf3CqjGrN/3ktXK7QgAGI17DiD6cEcFAEHWo02q5k7s5/MNV2KcTXMn9lOPNsYubgsE4sK+bTR9ZFe/Pjt9ZFdd2LeNwR0BAGpwzwFEFwIeAAiBoZ1bKGfyoHpPne6alqycyYM0tHMLkzsDfHfdWZ30yKV96v26VlyMVY9c2kfXndXJ5M4AANxzANHD4vV6vaFuItxUV1fLarVG3JTywsJCZWZmSpIKCgqUkZER4o6AyOf1epWXf0Dz8nbqw00OuT0/fyXHWC0a0T1dEwa208CspkyRRoPn8Xj0/Bc79czyfBWXOo853irVrmuGdNBVg9tH3H9DAaCh454DaFjMeP6O+oBnypQpeuqpp7Rjxw61b9++zvNeffVVPf7441q7dq0qKipks9nUt29fTZ06VePHjze0p7/+9a+aPXv2Cc8xI4Ah4AFCq6yySo7SSpU73UqKtyktxc62pAhbew8e1ua9pdp/yKVmjeLUrVUKW6EDQAPBPQcQemY8f8cEXCGMPfDAA3rqqadOet6f/vQnPfvss5KkFi1aqG/fvtq6dau+/vprXX755Vq9erUeeughw/rKy8uTJMXFxdWZnpOqA5En2R7LzRUiRqvGCQQ6ANBAcc8BRKaonR89Z84c3XHHHSc978knn9Szzz6rxMRE/ec//5HD4dCKFSu0a9cuXXHFFZKk2bNna8WKFYb0VV1drW+++UaSVFRUpMrKyuP+1aYNi1ICAAAAAIAjoi7gqaio0Pjx4zVt2rSTToE6dOiQ7rrrLknSwoULddVVV9XOnElISNCzzz6rFi2OLD726quvGtLf+vXrdfjwYbVr107Nmzc3pCYAAAAAAIhsURfwzJgxQwsWLNCAAQO0atWqE567ZcsW9evXTxMnTtSoUaOOOR4bG6vevXtLkvbs2WNIf7m5uZKkgQMHGlIPAAAAAABEvqhbg8dqtWrmzJm6/fbbFRNz4j9+v379tGTJkhOeUxPsNGrUyJD+agKeYcOGGVIPAAAAAABEvqgLeGbOnKnYWGMWFNuyZYs2b94sSRo+fLghNWsCnlWrVumFF17Qtm3bVFVVpaysLF1wwQW65ZZb1LRpU0OuBQAAAAAAIkPUBTxGhTvSkbBIktLT03XZZZcFXM/hcCg/P1+S9OKLLyo9PV19+/ZVeXm51q5dqw0bNuipp57SZ599pu7du/tcv7Cw8ITH9+7d61ffAAAAAAAgtKIu4DHKhx9+qPnz50s6st16QkLgW8HW7MSVkJCgp59+WuPHj5fNZpMk7dq1S9nZ2Vq1apUuvfRSrV+/Xlarb0soZWZmBtwjAAAAAABoeKJukWUjOBwO/fGPf5QkXXDBBbXbpQdq8ODBWrRokb744gtNmDChNtyRpHbt2un9999XcnKyNm3apEWLFhlyTQAAAAAAEP6YweOj6upqXXrppSouLlaHDh30/PPPG1Y7PT39uLt11WjevLkuuOACvfzyy1q8eLHGjBnjU/2CgoITHt+7d6/69+/vU00AAAAAABB6BDw+uummm/T5558rKSlJ77zzjpo0aRLU62dkZEhS7Vo9/nwWAAAAAABEFl7R8sEjjzyiJ598UjabTQsWLFDPnj0Nv0ZlZeUJj+/bt0+SZLFYDL82AAAAAAAITwQ89fTqq69q2rRpkqRHH31U559/vuHXGDVqlJo0aaKioqI6z/nss88kSV26dDH8+gAAAAAAIDwR8NTDggULdMUVV8jj8ei2227T9ddfb8p1LBaLKisr9e9///u4x19++WV9//33kqTf/e53pvQAAAAAAADCDwHPSXz88ceaMGGCqqurdcUVV+j+++837Vo1M4Rmz56t11577ahjL7/8sv70pz9JksaMGaOhQ4ea1gcAAAAAAAgvBDwncccdd8jtdks6MpPHbrfX+dcvLVu2rPbny5Ytq9e1hg8frr/97W9yuVy67LLLlJGRoQEDBqhNmzaaOHGiKisrNW7cOM2fP9/wPycAAAAAAAhfBDwnsXbt2tp/drlccjqddf71Sx6Pp/bnHo+n3te799579cEHH+jcc8/VwYMHtX79esXGxmr8+PFasmSJ3nnnHSUnJxv1xwMAAAAAABEg6rdJ93q9JzxeVVXlV92zzjrrpLXrMnLkSI0cOdKvzwIAAAAAgOgT9QEPAAAw3t6Dh7VpT4kOVFSpaWKsurdOVavGCaFuCwAAIGIR8AAAAEN4PB4998UOPbt8hxylzmOOp6fEa9LQDpo0uIOsVt4SBwAAMBIBDwAACNjba4o0feF6udx1rztXXOrUve9v0YOLt2rWxb10Yd82QewQAAAgsvHrMwAAEJAnPtuum19be8Jw55dcbo9ufm2tnvhsu8mdAQAARA8CHgAA4Le31xRp1uLv/PrsrMXf6e01RQZ3BAAAEJ0IeAAAgF88Ho+mL1wfUI3pb6yXx1O/mT8AAACoGwEPAADwy3Nf7Kj3a1l1cVV79PwXO41pCAAAIIoR8AAAAL88t3yHIXWeXWFMHQAAgGhGwAMAAHy29+BhFR9nK3S/apVUau/Bw4bUAgAAiFYEPAAAwGeb9pQYWm/z3lJD6wEAAEQbAh4AAOCzAxVVhtbbf8hlaD0AAIBoQ8ADAAB81jQx1tB6zRrFGVoPAAAg2hDwAAAAn3VvnWpovW6tUgytBwAAEG0IeAAAgM9aNU5Qekq8MbVS7WrVOMGQWgAAANGKgAcAAPhl0tAOhtS5ZogxdQAAAKIZAQ8AAPDLpMEdFGcL7FYiLsaqqwa3N6YhAACAKEbAAwAA/GK1WjXr4l4B1Zj1+16yWrkdAQAACBR3VAAAwG8X9m2j6SO7+vXZ6SO76sK+bQzuCAAAIDoR8AAAgIBcd1YnPXJpn3q/rhUXY9Ujl/bRdWd1MrkzAACA6BET6gYAAED4u7BvG43r3UrPf7FTzyzPV3Gp85hzWqXadc2QDrpqcHteywIAADAYAQ8AADCE1WrVpKFZmjQ0S3sPHtbmvaXaf8ilZo3i1K1VCluhAwAAmIiABwAAGK5V4wQCHQAAgCBifjQAAAAAAECYI+ABAAAAAAAIcwQ8AAAAAAAAYY6ABwAAAAAAIMwR8AAAAAAAAIQ5Ah4AAAAAAIAwR8ADAAAAAAAQ5gh4AAAAAAAAwhwBDwAAAAAAQJgj4AEAAAAAAAhzBDwAAAAAAABhjoAHAAAAAAAgzBHwAAAAAAAAhDkCHgAAAAAAgDBHwAMAAAAAABDmCHgAAAAAAADCHAEPAAAAAABAmCPgAQAAAAAACHMxoW4AAHBEWWWViksqdcjlVqM4m9JT7Uq2x4a6LQCA+I4GADR8BDwAEEJer1e5+fs1L3eXlmx2yO3x1h6zWS0a0T1NEwa206CsZrJYLCHsFACiD9/RAIBwQsADACGysahEU3PWaquj/LjH3R6vFm0o1qINxeqSlqQ52X3Uo01qkLsEgOjEdzQAINywBg8AhMDybfuUPTe3zgeHX9vqKFf23Fwt37bP5M4AAHxHAwDCEQEPAATZxqISTZ63WhUut0+fq3C5NXneam0sKjGpMwAA39EAgHBFwAMAQeT1ejU1Z63PDw41KlxuTctZJ6/Xe/KTAQA+4TsaABDOCHgAIIhy8/fXe8p/Xb5zlCkv/4BBHQEAavAdDQAIZwQ8ABBEL+ftalB1AAA/4zsaABDOCHgAIEjKKqv04SaHIbUWbypWWWWVIbUAAHxHAwDCHwEPAARJcUml3B5j1mVwe7xylFYaUgsAwHc0ACD8EfAAQJAc8nPRzrqUO42tBwDRjO9oAEC4I+ABgCBpFGcztF5SvLH1ACCa8R0NAAh3BDwAECTpqXbZrBZDasVYLUpLsRtSCwDAdzQAIPwR8ABAkCTbYzWie5ohtUZ0T1eyPdaQWgAAvqMBAOGPgAcAgmjCwHYNqg4A4Gd8RwMAwhkBDwAE0aCsZuqSlhRQja5pyRqY1dSgjgAANfiOBgCEMwIeAAgii8WiOdl9lOjnYp6JcTbNzu4ti8WYdSIAAD/jOxoAEM4IeAAgyHq0SdXcif18foBIjLNp7sR+6tEm1aTOAAB8RwMAwhUBDwCEwNDOLZQzeVC9XwXompasnMmDNLRzC5M7AwDwHQ0ACEcxoW4AAKJVjzap+vDmYcrLP6B5eTv14SaH3B5v7fEYq0UjuqdrwsB2GpjVlCn/ABBEfEcDAMINAQ8AhJDFYtGgjs00qGMzlVVWyVFaqXKnW0nxNqWl2NlmFwBCiO9oAEA4IeABgAYi2R7LwwIANFB8RwMAGjrW4AEAAAAAAAhzBDwAAAAAAABhjoAHAAAAAAAgzBHwAAAAAAAAhDkCHgAAAAAAgDBHwAMAAAAAABDmCHgAAAAAAADCXFgGPE6nM9QtAAAAAAAANBhhF/CUlJTo9NNP15tvvimv1xvqdgAAAAAAAELO9IDnnnvu0YwZM4762Q033KA///nPftU7dOiQNm3apOzsbJWWlhrQIQAAAAAAQHgzPeB5+OGH9eCDDx71szfffFOvvfaaX/X2798vSWrZsqVSU1MD7g8AAAAAACDcmR7w2O12xcfHH/WzhIQEJSQk1PmZH374oc5jO3fulCR169bNkP4AAAAAAADCnekBT1xc3DEBT0xMjGw2W52f6dq1q5544onjHsvPz5ck9e3b17gmAQAAAAAAwliM6ReIiVFMTIyefvppbdmyRYmJiTpw4ICqqqp09913y+v1qrq6Wi6XSykpKbrzzjtVUlKiG2+8Ue+9955efPFFtWjRorbexo0bZbFYNGDAALNbBwAAAAAACAsWr8lbUXXu3FlOp1P9+vXTO++8I4vFUue5Xbt21ebNm2W1/jyxKCMjQ++995569eolSerVq5c2bdqkgoICtW7d2szWo05hYaEyMzMlSQUFBcrIyAhxRwAAAAAARB4znr9Nn8FTY9iwYUpLS1NcXJxeeeUVVVdX6+qrr649/uijjx51/tChQ9WzZ0898cQTGjZsmN555x116dJFmzZtUvfu3Ql3AAAAAAAA/idoAc8tt9xS+88fffSRDh06pIcffrj2Z78OeOLj4/X444/rtNNO07XXXquxY8fqggsukNfr1bhx44LVNgAAAAAAQINnasBTs75OIK6++molJydr/Pjxmj9/viwWi6688kqDOgSAhqOsskrFJZU65HKrUZxN6al2JdtjQ90W4BfGMyINYxqRhPEMRCZTAp49e/bo3//+t+bNm6fCwsKA3yW75JJL9Mgjjyg3N1ddu3ZV586dDepUmjJlip566int2LFD7du3r/M8h8OhGTNm6L333tMPP/ygDh066Nprr9VNN9101JpBRvn00091//33Ky8vTx6PR4MGDdK9996r/v37G34tAKHj9XqVm79f83J3aclmh9yen5dFs1ktGtE9TRMGttOgrGYnXMMMaAgYz4g0jGlEEsYzEPlMCXgGDx6s3bt3y6j1m6dOnaq8vDxJ0tatW/X999+rY8eOAdd94IEH9NRTT530vF27dmnIkCEqLCyUJFksFn333Xe65ZZbtGbNGr344osB9/JLzz77rP785z/X/t/PYrHo448/1rJly/TOO+9o5MiRhl4PQGhsLCrR1Jy12uooP+5xt8erRRuKtWhDsbqkJWlOdh/1aJMa5C6B+mE8I9IwphFJGM9AdDB+6omkCy+8UI0bN9aUKVPUsmVLv+u43W7deOON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VTNmzFBeXp62bt0qSXK5XNq9e3ftOR6PR9KR6Ui/flPM6XQedS6zdwAAAAAAAI7PlIDn6aef1g033KDq6mrFx8crLy9PkrRy5Up16NDhmPOPt7PWl19+edS5Xq+XNWEAAAAAAACOw5SA57e//a3i4uI0ceJE3X333WrTpo2kI2vu/DLM2bZtm7xer7p06XLU5zdt2nTccwEAAAAAAHAsUwKe9u3ba+fOnWrevPlRPz/jjDP06aef1v57586d5XQ6tWHDhqPOs1qtGjRokJYsWVL7s1NPPVWHDh0yo10AAAAAAICwZtoiy78OdwAAAAAAAGAOUwKeNWvW6He/+53WrVtnRnkAAAAAAAD8gimvaL3//vt6++239c4776hv374aP368JKm6ulqlpaW153k8Hnm9XpWVlR2zi1Z9zk1JSTGjfQAAAAAAgLBiSsDj8XiUlZWl/Px8ffPNN1qzZo0sFou++OILNWnS5JjzGzdufNS/WywWff755yc812KxqLq62oz2AQAAAAAAworF++upMwYqKCjQm2++qYULF+qLL7446lhSUpJSU1PrXcvr9crtdsvtdsvpdOrw4cNyuVxGtxzVCgsLlZmZKenI/+/Ylh4AAAAAAOOZ8fxtygyeGpmZmfrLX/6iv/zlL8rPz9fcuXP13HPP6cCBA6qqqtKoUaN06623qnPnzma2AQAAAAAAENFM20Xr17KysnTXXXdp9+7dmjlzpmw2m5577jl1795da9eurfNzbrdbl19+uf71r38Fq1UAAAAAAICwErSAZ/369erRo4c++eQT3Xnnndq0aZPGjBmjyy67TH369Kk974033tATTzyh7du3S5JsNpu++uorPfDAA8FqFQAAAAAAIKwELeB56aWXVFBQoAsvvFDDhw/XDz/8oHfeeUf/+c9/jjpv//79uvHGGzVz5szan/Xs2VPl5eXasmVLsNoFAAAAAAAIG6YFPHl5eUf9+x//+Ef961//UufOnbV06VINHDhQF110kb799tujzuvUqZO8Xq9KSkpqf9a9e3dJ0pdffmlWuwAAAAAAAGHLlICnvLxcZ599tq688koVFRVJknr06KHbb79dW7Zs0bx58+T1evXOO++ob9++uvTSS7V582ZJRwIe6ciK0jVOPfVUeb1eAh4AAAAAAIDjMCXg+eijj+R0OvXyyy+rY8eOuvrqq7Vx48ba42PHjpUknXnmmRoyZIhef/119e7dWxMmTNChQ4cUHx+vbdu21Z7fpUsXSdInn3xiRrsAAAAAAABhzZSAZ/jw4XrxxRc1duxYWa1WvfDCC+rdu7dGjRqljz76SCkpKWrUqJESExP12WefadGiRerSpYvmz5+vXr16qbq6WuXl5bWzetq3by9J2r17t7Zu3WpGywAQcmWVVdrmKNPagoPa5ihTWWVVqFsCAPzPe2uLdMVzKzXykWW64rmVem9tUahbAvyWu32f/vbmek164Sv97c31yt2+L9QtATCAxev1es28QElJiV588UXNnTtX3377rSwWi7p3766dO3eqZcuWtbtlud1uPfroo/rb3/6mqqojDzX/+c9/dOWVV0qSEhIS5HK5dM899+iOO+4ws+WoVVhYqMzMTElSQUGBMjIyQtwREPm8Xq9y8/drXu4uLdnskNvz81eyzWrRiO5pmjCwnQZlNZPFYglhpwAQfZxOp86es0J7SirrPKd1ql1Lpw5RfHx8EDsDfFdVVaXsp1dqTUFJnef0zUxVzp8HKDY2NoidAdHJjOdv0wOeX1qyZIn+/ve/66uvvjpycYtFDodDzZs3rz3n008/1ciRI9W2bVvdd999uuSSSyRJWVlZ2rlzpzp27HjU61swDgEPEFwbi0o0NWettjrKT3pul7Qkzcnuox5tUoPQGQBg3OMrtL6w7gfhX+uVkap3bxhiYkeA/6a8vFofbCyu9/mjeqTryQn9TOwIgBnP30HbJl2Sfvvb32rlypW67777ZLfb9Yc//EEul+uoc8455xzt3btX27dvrw13JGnAgAG68cYbNXfu3GC2DACmWL5tn7Ln5tYr3JGkrY5yZc/N1fJtTKEGALMNuPdjn8IdSVpfWKIB935sUkeA/8b+33Kfwh1J+mBjscb+33KTOgJglqDO4PmlQ4cOqVGjRqG4NOrADB4gODYWlSh7bq4qXG6fP5sYZ1PO5EHM5AEAk/g6c+fXmMmDhsTXmTu/xkwewDxhP4Pnlwh3AEQjr9erqTlr/Qp3JKnC5da0nHUKUTYPABHN6XQGFO5IR2byOJ1OgzoC/FdVVRVQuCMdmclTsz4qgIYvZAFPWVmZrr/+ernd/j3kAEA4ys3fX+/XsurynaNMefkHDOoIAFDj7DkrDKkz/GFj6gCByH56pSF1LntmlSF1AJgvZAHPQw89pCeffFLDhg3ToUOHQtUGAATVy3m7GlQdAMDPTrRbli8KDxpTBwjEiXbL8sXq3QcNqQPAfCEJeIqLizVnzhxZLBalpaXxuhaAqFBWWaUPNzkMqbV4U7HKKpkyDQBGeW9tUYOuB/gid7uxmzIYXQ+AOYIe8Hi9Xv3hD3/QoUOH1KxZM3bFAhA1iksq5fYYs3aO2+OVo5TfEAOAUXJWFxpa7/VvjK0H+OK/6/caWu+9DYGt5QMgOGKCfcEZM2Zo6dKlio+P1+uvv66DBw+qoKBAdrtdsbGxstlsdX7W6/XK6XSqsrJSlZWVOvPMM4PYOQAE5pCfCyvXpdzJGmYAYJQfyoxdGNlRykLLCB2jx1+xQa8vAjBXUAOeuXPn6p577pHVatXzzz+v3/zmNxo/frxycnJ8rmWxWFRdXW1ClwBgjkZxdQfY/kiKN7YeAESzlsnx2lJcZli9tJR4w2oBvjJ6/KWn2g2tB8AcQQt4HnroId12222KiYnRf/7zH1122WW1x+Li4pSQkKC4uDhZLJY6a3i93trZOy6XKxhtA4Bh0lPtslkthrymFWO1KC2Fmy0AMEp2vwwt2/ajYfUuOS3DsFqAr8b2aqX5qwoMqzemZ7phtQCYx/SAp6SkRNdff71effVVJSUlaeHChTrvvPNqj7/66qtmtwAADUKyPVYjuqdpkQHvsY/onq5ke6wBXQEAJGlMnza6YcFaQ+sBoTKoU4sGXQ+AOUwLeB599FHt2bNHr7zyivbs2aP+/ftr/vz5ysrKMuuSANDgTRjYzpCAZ8LAdgZ0AwD4pdapdkO2Ss9ozAxLhF7fzFRDtkrv17Zx4M0ACApTdtGqrq7Www8/rIceekh79+7VqFGj9OWXXxLuAIh6g7KaqUtaUkA1uqYla2BWU4M6AgDUWDp1iCF1PrnFmDpAIHL+PMCQOgv+1N+QOgDMZ0rAs3PnTnXo0EHSkXVzFi9erAkTJqi4mO31AEQ3i8WiOdl9lOjngsuJcTbNzu59wvXKAAD+iY+PV6+M1IBq9MpIVXw8Cywj9GJjYzWqR2Br54zqka7YWF4JB8KFKQFPp06dtHTpUm3dulVXX321bDabFixYoG7duuntt98+6tzdu3drzZo1+uGHH8xoBQAanB5tUjV3Yj+fQ57EOJvmTuynHm0Ce/gAANTt3RuGKC3Zv4AmLTle797A7B00HE9O6KeerVP8+mzP1il6ckI/gzsCYCZTAp4aHTt21LPPPqsNGzZo1KhROnjwoH7/+9/rtttuk9d7ZBeZefPm6fTTT1erVq0UFxen1q1bq0+fPjr33HM1ceJEPfjgg1q+fLmZbQJA0A3t3EI5kwfV+3WtrmnJypk8SEM7s8ghAJht5Z3n+jyTp1dGqlbeea5JHQH+++9NQ32eyTOqR7r+e9NQkzoCYBaLtyZpCYLnn39eN910kyoqKnTxxRdr/vz5+utf/6qXXnpJHo9HVVVVOnz4sH7ZUs1rCKeeeqqmT5+uK664IljtRp3CwkJlZmZKkgoKCpSRwfaegNm8Xq/y8g9oXt5OfbjJcdQW6jFWi0Z0T9eEge00MKspr2UBQJA5nU4Nf3iFCg/WvfByRmO7PrllCK9locGrqqrSZc+s0urdB+s8p1/bxlrwp/68lgUEgRnP30ENeCRp1apVOv/883XgwAGNHTtWCxcuVEzM0Zt5lZaW6qefftLmzZuVm5urZ599VsXFxbJYLBozZoyee+45NW/ePJhtRwUCHiC0yiqr5CitVLnTraR4m9JS7GyFDgANxHtri/T6N4VylDqVlhKvS07LYCt0hK3c7fv03oZiFZdUKj3VrjE909kKHQiyiAh4JGn9+vUaNmyYysrK9Mc//lHPPffcCc93uVyaPXu2/vGPf8jj8ahLly767LPPlJaWFqSOowMBDwAAAAAA5jPj+dvUNXjq0qtXL73xxhuyWq164YUXNHv27BOeHxcXpzvuuEMffPCBGjVqpK1bt2r06NFB6hYAAAAAAKBhMy3geeCBB7Ry5co6jw8fPlx///vfZbfb1aVLl3rVPPfcc/XKK68oISFB//73v41qFQAAAAAAIKyZ8opWRUWF0tPTdejQIQ0bNkxTp07V2LFjjznP4/Fo9erVOuOMM3yqv3PnTrVv396gblGDV7QAAAAAADCfGc/fMSc/xXe5ubmyWq3yer36/PPPtWzZMrVv315XXXWVWrZsecz5a9asqXft6upquVwuHTp0SHfeeaeRbQMAAAAAAIQl0xZZ9ng8Wr58uRYsWKAFCxaopKTEsC1+vV6vLBaL3G63IfVwBDN4AAAAAAAwX9jM4JEkq9Wq3/zmN/rNb36jOXPm6IUXXtDDDz+s7du3S5IsFov69++vIUOG1Kue2+3W4cOH5XK55HK5CHcAAAAAAAD+x7SA55cSEhI0ZcoU/fnPf9aTTz6pu+++Wz/++KNWrVqltm3bavbs2cwWAQAAAAAA8FNQt0m32Wy64YYbtH37dt18882yWCxauHChevbsqRdffDGYrQAAAAAAAESMoAY8NVJSUjRnzhy99957atKkiUpKSlRdXR2KVgAAAAAAAMJeUF7RqsvIkSO1Zs0avfrqq5o0aVIoWwEAAAAAAAhbIZnB80uZmZmaPn16qNsAAAAAAAAIWyGdwfNLLpdLn332mWw2m4YPHx7qdgAAAAAAAMKGaQHPgQMHJElNmzaVJDkcDiUkJCglJeW455eXl2vkyJFq0qSJ9u/fb1ZbAAAAAAAAEceUV7RKS0vVvHlztW7duvZnjz/+uNq3b6+77rpLxcXFx3wmMTHxqL8DAAAAAACgfkwJeOLj4yVJCQkJtT9buHChDh48qPvuu0/t27fXlVdeqa+//rr2eGxs7FF/BwAAAAAAQP2YEvDExcVJ+jms8Xq9mjZtmn77298qJiZGLpdLL7/8sgYMGKBBgwbpwIEDstlsklT7dwAAAAAAANSPKQGPxWJRTExMbVhjsVh0zTXXaPHixXI4HHr00UfVtWtXeb1excXF1a7TU3MuAAAAAAAA6s+0RZZtNttxZ+M0btxYN954o2688UZ9+umnvJIFAP+z3VGmL7//UT+Uu9QyKU5ndmyuTmnJoW4L8AvjGZFm3e6f9NG3DjnKnEpLjtd5p6apd9smoW4L8Avf0UBkMnWb9JPNxjnnnHPMvDwANHhut1v/eHeTFq4ukrPac8zx+BirLu7XRneP684rrGjwGM+INNXV1Zr88jda+t0+ebxHH3t86feyWqSzu7bQ3AmnKSbG1NtqIGB8RwORz+L1er0nP813CQkJstlsGjduXL0/s2DBAiUnJ+v888+v85zq6mpVVVXp0KFDWrJkiRGt4n8KCwuVmZkpSSooKFBGRkaIOwIi22OfbNOcj7aqPl/CFklTz+uiG4d3NrstwC+MZ0Sau97aoJdX7q73+RMGtNU9F/U0sSPAf3xHAw2PGc/fpgY8LpdLJpWXxWKR2+02pXa0IuABgmf6wnXK+brQ589ln56hWRf3NqEjwH+MZ0SaK55bqWXbfvT5c8M6N9dLkwaY0BHgP76jgYbJjOdvU+eSJicn68Ybb6z3+ffee6+aNm2qKVOmHPe41+tVdXW1nE6nDh06ZFSbABBUj32yza8bLUnK+bpQmU0S+a0aGgzGMyLNXW9t8CvckaRl237UXW9tYCYPGgy+o4HoYuoMnubNm6ugoKDen7FarerUqZO2bt1qRks4CWbwAOZzu93qdOfiek2RrotF0vZ7R/J+PEKO8YxIU11drU53fRhwne33jGBNHoQc39FAw2bG87cp26TXOFl29Nlnn/GaFYCo8o93NwV0oyVJXkkz/rvZiHaAgDCeEWkmv/yNIXWmvLLGkDpAIPiOBqKPaQGP1+uVx3Ps6uyHDx/WY489pi5dumj48OGaN2+eWS0AQIOzcHWRIXVeX+3fdGvASIxnRJql3+0zpM4nW34wpA4QCL6jgehjWsDjcrmOmp1TUlKif/7zn2rbtq1uvvlmbd++XV6vV7Nnz5bH46md7XO8UAgAIsF2R9lxtyX1R2WVR9sdZYbUAvzBeEakWbf7p2O2QveXx3ukHhAqfEcD0cmUgMfpdEo6EvLUmDRpku6++27t379fTZs21XXXXadly5Zp3bp1slqttZ+prKw0oyUACLkvv/dv0c665ObvN7Qe4AvGMyLNR986DK33MbN4EEJ8RwPRyZTV32pCmoqKitqfXXvttdq0aZNuv/12XXbZZYqPjz/uZ34Z8Kxbt052u11du3Y1o00ACKofyl0nP8kHjjKnofUAXzCeEWmMHoPFpfzSEqHDdzQQnUwJeFJTU4951ercc8/Vpk2bZLUef9JQdXW1srKylJSUJEn6z3/+oylTpigjI0O5ublq2bKlGa0CQNC0TIoztF5acvzJTwJMwnhGpDF6DKan2A2tB/iC72ggOpm6i9YxF6sj3JGk5s2ba/v27Vq7dq0k6aKLLlLPnj21Y8cOjR07VocPHw5SlwBgjjM7Nje03qCsZobWA3zBeEakOe/UNEPrnXsKv5xE6PAdDUQnUwOeyspKjR8/Xk899ZTPn23SpIk++eQT9e3bV19//bUuv/xyFmAGENY6pSUrPsaYr117rFWd0pINqQX4g/GMSNO7bRNZLcbUslqO1ANChe9oIDqZ8oqWJO3fv19jx45VXl6e3nrrLY0ePVpt27aVdGTBZUmKj49XXFyc4uLqnkLYs2dPrVmzRu+++66uvPJKtlUHENYu7tdGr6wsCLjOJf0yDOgGCAzjGZHm7K4t9MmWwLdKH87sHTQAfEcD0cfirdmf3EBFRUUaPny4tm7dqqSkJL344ou66KKLao8nJCTI5XKpPpe2WCy151ksFl199dV65plnjG4ZkgoLC5WZmSlJKigoUEYGX+aA0dxutzrduViBfPFaJG2/d6RsNptRbQF+YTwj0lRXV6vTXR8GXGf7PSMUE2Pa71GBeuE7GmjYzHj+Nvy/PC6XS+ecc462bdum9PR0ffDBB+rdu/dxz73zzjvrVbOsrEwLFizQvn371KxZM1VXV/MfTQBhyWazaep5XTT7o61+15h6XhdutNAgMJ4RaWJiYjRhQFu9vHK33zUmDGjLfSoaBL6jgehj+H994uLidP3112v27Nn67LPP1KFDhzrPnTlzZr3r3nrrrfr88891+eWXG9EmAITMjcM7q+CnCuV8XejzZ7NPz9CNwzub0BXgH8YzIs09F/XU7gMVWrbtR58/O6xzc91zUU8TugL8w3c0EF1MeUVLkkpLS5WSknLcY/Hx8aqurpbT6eQ3HA0Ir2gBwfXYJ9s056Ot9Zo6bdGR36Jxo4WGivGMSHPXWxt8mskzYUBbwh00WHxHAw2PGc/fpgU8dfF4PIqJiZHFYtFPP/1UZwiE4CPgAYLP7XZrxn83K+frQjmrj90p0B5r1SX9MjRjbDemSKPBYzwj0lRXV2vKK2v0yZYf5DnOHbPVcmRB5Sf/0JdfWqLB4zsaaFgiIuBxuVy1r2ZNnz5dyclsuddQEPAAobXdUabc/P1ylDmVlhyvQVnN2JYUYYvxjEizbvdP+njLDyourVR6il3nntKSrdARtviOBkIvIgKecHTWWWfp888/r9e57dq1086dOwO63saNG9Wz54mn+M6cOVN33XVXQNf5NQIeAAAAAADMFxa7aEWiuLg4xcfHn/Act9ut6upqWa3WgK+Xl5cn6cjK93VN92UaMAAAAAAAqBGUlGD27NlKSEhQfHx87fo79eX1euVyueR0OuVyuXTaaafprLPOMq/Z41iyZMlJzzn//PO1aNEiXXHFFQFfb+XKlZKk+++/X3/9618DrgcAAAAAACJbUAKe22+/XR7PsQt5+WPatGlBD3hOZsmSJVq0aJEyMzN12223BVyvJuA5/fTTA64FAAAAAAAiX9De80lKSlKXLl18/tzq1atlt9vVvXt3Sap9R62hcLvdmjZtmiRp1qxZSkhICKheWVmZNm3aJJvNRsADAAAAAADqJWgBT+/evbVs2TKfP2e1WtW+fXt99dVXJnQVuGeeeUYbN27UkCFDdNlllwVcb+XKlfJ4PDrjjDOUlJRkQIcAAAAAACDSBb4icBT75ZbvNX8PVG5urqQjCyxfeOGFatOmjex2uzIzMzVhwoTa4wAAAAAAADXYiikAL7zwgvbs2aOBAwcati7Ql19+KenITlp2u109e/ZU165dtXHjRr3yyiuaP3++7rvvPr/W+iksLDzh8b179/rVMwAAAAAACC0CHj+53W7NmjVL0pFFpI3g8XhqZ+hceeWVevDBB9WiRQtJktPp1L333quZM2fq9ttv129+8xsNHDjQp/oNbf0iAAAAAABgDF7R8tPrr7+u77//Xt26ddO4ceMMqenxePTuu+/qnXfe0fPPP18b7khSfHy87r777tp1fh566CFDrgkAAAAAAMJf0GbwFBcX6+mnn/brswcPHqz9rNVq1TXXXGNka3557LHHJEnXXnutLBaLITVjYmI0bNiwE55zzTXXaMGCBVqyZIm8Xq9P1y4oKDjh8b1796p///71rgcAAAAAABoGi9fr9Zp9kdjYWHk8Hr8+++sQw2azyeVyGdWaX7Zu3aquXbsqJiZGe/bsOWqmjdm+++47nXLKKZIkh8Ohli1bGla7sLCw9jWugoICZWRkGFYbAAAAAAAcYcbzd1Bm8HTs2FF2u112u10xMTE+z3hxuVxyuVxyOp1+B0VGev755yVJI0eONDzc8Xq9qqqqUlxc3HGP79u3r/afjZo5BAAAAAAAwltQAp4tW7bUeayqqkrz58+X1WrVxIkT6zyvtLRUKSkpZrTnE7fbrZdeekmSTtivP5566in94x//0C233KI77rjjuOcsXbpUktS0aVM1b97c0OsDAAAAAIDwFJRFlktKSjR69Gj96U9/OuZYVVWVrrrqKl177bV1fv7pp5/WKaecctI1ZILhiy++0J49exQTE6PRo0cbWrtp06bat2+fnnnmGTmdzmOOHzhwQI8//rgk6cILL2QGDwAAAAAAkBSkgMdms2nx4sX6/PPPjzmWmJgoSUpISDjuZ++44w5NmTJFxcXF+sc//mFqn/WxaNEiSdIZZ5yhpKQkQ2tfdNFFysrK0o4dO3T11VervLy89tj27dt1zjnn6IcfflBqaqr+9re/GXptAAAAAAAQvoIS8MTGxp7wuM1mO+45f/vb3/TAAw/IYrHowQcfrF37JpRqAp6zzz77pOd27dpVdrv9uDOXjic2NlavvvqqGjdurPnz5ys9PV39+vVTjx491LVrV61bt04ZGRlatGiROnbsGNCfAwAAAAAARI6gBDwxMUeW+vF4PDp8+LCqq6uPOm6z2WS1Ht3K888/r/vvv1+xsbF68803NW3atGC0ekKFhYXasGGDpPoFPE6nU06nU1VVVfW+Rv/+/bVhwwZde+21Sk1N1fr16+VwODRs2DA98sgj+vbbb3XmmWf6/WcAAAAAAACRJyjbpEuS1Wo9ZrvzlJQUpaamaufOnUpOTtasWbPUvXt3lZeX64ILLlB1dbVeeOEFTZgwIRgtRj22SQcAAAAAwHxhu036L9XkSdXV1Tpw4IAOHDggSSorK9OUKVOOOnfkyJG67LLLgt0iAITEdkeZvvz+R/1Q7lLLpDid2bG5OqUlh7otwC/vrS1SzupC/VDmVMvkeGX3y9CYPm1C3RYAAIgwZZVVKi6p1CGXW43ibEpPtSvZfuJlYiKVKQGP1+vV//3f/+nPf/7zUYsnd+zYUZs3b5bT6VRlZaUcDocKCws1duxYxcbGqnfv3tqwYUPt4sKLFy9Wx44d9f/+3//T1VdfbUarABBSbrdb/3h3kxauLpKz2nPM8fgYqy7u10Z3j+sum80Wgg6B+nM6nTp7zgrtKak86udbisu0bNuPumHBWrVOtWvp1CGKj48PUZcAACDceb1e5ebv17zcXVqy2SG35+cXk2xWi0Z0T9OEge00KKtZVO0+bcorWt99951OPfVUNW/eXH/4wx80fvx4DRw4UJ06ddLWrVuPOT8hIUHNmzdXQUGBPB6Pli5dqldffVXz589XZWWlLBaLhgwZoueff15ZWVlGt4v/4RUtILge+2Sb5ny0VfX5ErZImnpeF904vLPZbQF+Gff4Cq0vLKn3+b0yUvXuDUNM7AgAAESijUUlmpqzVlsd5Sc9t0takuZk91GPNqlB6Mw3Zjx/m7LI8oYNG2Sz2fTjjz/q0Ucf1aBBg2SxWPTTTz8pLy/vmPO9Xm/tq1tWq1XDhw/Xs88+q507d2ratGmKjY3V8uXLddppp+m1114zo2UACKrpC9dpdj3DHUnySpr90VZNX7jOzLYAvwy492Ofwh1JWl9YogH3fmxSRwAAIBIt37ZP2XNz6xXuSNJWR7my5+Zq+bZ9JnfWMJgS8Fx88cUqKyvTkiVLdMstt6ht27byer3av3+/Bg8erKFDh2rFihW157vdbrnd7mPqtGzZUg8++KA2bNigs846S6Wlpbr88st1xx13mNE2AATFY59sU87XhX59NufrQj32yTaDOwL8N+7xFXKUOf36rKPMqXGPrzj5iQAAIOptLCrR5HmrVeE6Njs4kQqXW5PnrdbGIt9+GRWOTNsm3W6369xzz9Xs2bO1Y8cOrVixQhMmTFBsbKy++OIL/eY3v5HD4ZB0JOA50VbinTt31ieffKJ//vOfkqQHH3xQy5YtM6t1ADCN2+3WnI+OfVXVF3M+2nrcUBwINqfT6fPMnV9bX1gip9O/gAgAAEQHr9erqTlrfQ53alS43JqWs05B2kQ8ZEwLeH7tzDPP1EsvvaQdO3boxhtvVPv27ZWWllZ7U1dZWXnCz1ssFv3973/XM888o7/85S8aNmxYMNoGAEP9491N9X4tqy5eSTP+u9mIdoCAnD3HmNk3wx9mFg8AAKhbbv7+er+WVZfvHGXKyz9gUEcNU9C3SW/VqpUeffRRzZgxQ9KRNXeeeeaZeq9szW5aAMLZwtVFhtR5fXWhZl7Y05BagL9+vVuWvwoPGlMHAABEppfzdhlWZ1DHZobUaoiCHvDUaNKkiSQpNjZWkyZNClUbABA02x1lx90K3R+VVR5td5SpU1qyIfUAX7231piw8pf1xvRpY2hNAAAQ/soqq/ThJochtRZvKlZZZZWS7bGG1GtogvaKVn2sW7fuuLts1Thw4EDEvzMHIHJ9+f2PhtbLzd9vaD3AFzmr/VsovC6vf2NsPQAAEBmKSyrl9hiTA7g9XjlKI3fmsOkBz7XXXqsrr7xSZWVlJz13+vTpGjx4sHr27Kl33nnnqGNLlixR9+7ddc8995jVKgCY6odyl6H1/N25CDDCDwaPP0cp4xkAABzrkJ8LK9el3Bm5m5WYHvC8++67evnll0963s6dO3Xo0CHZbDZt2rRJv/vd7/Ttt99KkmbMmKHRo0fL4XDo/vvvr919CwDCScukOEPrpSXHG1oP8EVLg8dfWgrjGQAAHKtRnM3QeknxxtZrSEwPeBITEyVJCQkJkqT33nvvuOe1b99eK1as0NatP28f7HA4NHbsWM2cOVMej0fDhg3TV199pbS0NLPbBgDDndmxuaH1BmVF7gJxaPiy+2UYWu+S04ytBwAAIkN6ql02a/02ZTqZGKtFaSl2Q2o1RKYFPF9//bUkKSYmpvbvGzZs0AUXXKDOnTvrvvvuU3Fx8TGfW7HiyFapzZs316BBg+RyuWSxWDRz5kx99tln6tatm1ktA4CpOqUlKz7GmK9de6yVBZYRUkYviMwCywAA4HiS7bEa0d2YSR4juqdH7ALLkkkBz7fffquzzz5bU6ZMOWr785UrVyouLk7ff/+97rrrLrVr107Z2dlavXq1pCOvaf3lL3+RxWLRP//5T8XHx+uVV17RBx98oDvvvNOMVgEgqC7uZ8xD7CUGz54A/NE61ZjfgGU0jtzfpAEAgMBNGNiuQdVpqAwPeKqrqzV+/HhVVFSoX79+Rx275pprdODAAb3//vuaPHmykpOTtXDhQvXv319jx47VmDFj9NNPP2nMmDG69tprJR2ZyXPeeefpv//9r9q3b6/7779fhw8fNrptAAiKu8d1V6ATTC2SZoxlNiNCb+nUIYbU+eQWY+oAAIDINCirmbqkJQVUo2tasgZmNTWoo4bJ8ICnqqpKXbp00e9//3tdc801xxxPSEjQqFGj9MQTT2jPnj16/PHHFRMTo0WLFunbb79Vt27d9Morrxz1GY/HoxkzZmj37t2688479fvf/97otgEgKGw2m6ae1yWgGlPP6yKbLXIXh0P4iI+PV6+M1IBq9MpIVXw8CywDAIC6WSwWzcnuo0Q/F1xOjLNpdnbvo94wikSGBzwJCQnKycnRvHnzTnjepk2b9OCDD2rWrFmqqqqS1+uV1+tVYWGhduzYcdS5TqdTf//733XZZZfJ6/Xq008/NbptAAiaG4d3Vvbp/r1ilX16hm4c3tngjgD/vXvDEL93dEtLjte7NzB7BwAAnFyPNqmaO7GfzyFPYpxNcyf2U482gf1SKhxYvF6v1+iiS5culdPplNVq1TXXXKOioiLdf//92rVrl7Zu3arVq1fr4MGDqrn06NGj9fe//11ffvmlpk2bpjZt2mjt2rVq1uzoHWK8Xq+aN2+ugwcPyu2O3L3rQ6WwsFCZmZmSpIKCAmVksMYHYKbHPtmmOR9tVX2+hC06MnOHcAcN1bjHV2h9YUm9z++VkUq4AwAAfLaxqERTc9Zqq6P8pOd2TUvW7OzeDTLcMeP525SAZ8CAAbW7aElHghmLxVIb6DRq1EhnnHGGxo4dq4suukjt27evPXfatGl6+OGHNW7cOL399tvH1D711FO1detWAh4TEPAAwed2uzXjv5uV83WhnNWeY47bY626pF+GZoztxmtZaPCcTqeGP7xChQcr6zwno7Fdn9wyhNeyAACA37xer/LyD2he3k59uMkht+fnWCPGatGI7umaMLCdBmY1bbCvZYVNwHPGGWfI7XbLbrdr3bp1qqys1D333KOOHTuqW7du6tatm6zW478d5nK51LdvX1111VX661//quXLl2vVqlWaNm2aJAIeMxHwAKG13VGm3Pz9cpQ5lZYcr0FZzdgKHWHrvbVFev2bQjlKnUpLidclp2WwFToAADBcWWWVHKWVKne6lRRvU1qKPSy2Qjfj+Tsm4ArH8dVXX9X+c00gc8cdd0iSPv30U9lsNp166qlas2aNNmzYcMzn33zzTXXu3Fl33323Zs6cKY/Ho06dOumCCy4wo10AaBA6pSUT6CBijOnThkAHAACYLtkeGxaBTjCYEvCcyLnnnquJEyfqxRdfVE5OjmbNmlV7zOv1ymq1qrq6WldddZVeeuklWSwW3XrrrRo5cmSwWwUAAAAAAAgLQQ94JOnXb4W99NJLkqTXXntN77//viRp3Lhx+uSTTzR//nwNGcIijAAAAAAAAHUJScDza3/4wx8kSRs3bqwNeC666CKNHDlSCQkJoWwNAAAAAACgwWsQAU9dHA6Hli9frkaNGkmS9uzZo/z8/Aa7CjYAAAAAAEAoNOiAZ/Xq1bryyiuPCnS8Xq/69esXwq4AAAAAAAAalgYR8EyePFler1erVq066ueNGzfWgAEDlJSUpPj4eDVt2lTdu3fXlVdeGaJOAQAAAAAAGp6QBjxer1der1fPPPNM7c9+OVtn+PDhGj58eChaAwAAAAAACBtBD3iqqqpks9kkSbfffrumTJlywvOLiorUunVr1t0BAAAAAACoQ9ACnuHDh8tqtcpqtSomJkZxcXFKTExUkyZN1KFDB/Xs2VPDhg2T3W4/6nOXXXaZCgoKdOONN+qaa65RampqsFoGAAAAAAAICxav1+s18wKnnHKKtm7deuIm/jc7Jz4+XhdeeKFuuukmDRw4UDt27FDXrl1VXV0ti8WiRo0a6c9//rNuu+02tWjRwsy2o1JhYaEyMzMlSQUFBcrIyAhxRwAAAAAARB4znr9ND3i+/fZbVVVVKTY2tnYGj9vtVnV1tUpLS7V7925t2bJFH330kVauXCmPxyOLxaILL7xQzz77rLxer1599VXNnTtXGzduVGxsrL777ju1b9/ezLajEgEPAAAAAADmC8uAxxdbt27Vvffeq3nz5umUU07Rxo0bZbVaa4+//fbb+vzzz/Xwww+HsMvIRcADAAAAAID5Ij7gqfHxxx+rrKxMF110UahbiSoEPAAAAAAAmM+M5++QbpNel3PPPTfULQAAAAAAAIQN68lPAQAAAAAAQENGwAMAAAAAABDmCHgAAAAAAADCXINcgwcAolHu9n367/q9cpQ6lZYSr7G9WmlQpxahbgvwy96Dh7VpT4kOVFSpaWKsurdOVavGCaFuC/Db7MXf6vXVhSpzVis5PkaX9MvQtJGnhrotwC93Llynd9fv1eFqtxJibBrXq5Xuvbh3qNsCEKAGuYsWQoNdtIDgq6qqUvbTK7WmoKTOc/pmpirnzwMUGxsbxM4A33k8Hj33xQ49u3yHHKXOY46np8Rr0tAOmjS4g6xWJhGj4SsvL1fff32uKk/d58RapTV/+42SkpKC1xjgh5KSEvW5b4VO9PBnkbT2jiFKTU0NVltA1IqabdIRGgQ8QHBNeXm1PthYXO/zR/VI15MT+pnYEeC/t9cUafrC9XK5T/Ak/D9xNqtmXdxLF/ZtE4TOAP/0nPGhyiqr631+sj1GG2aMMLEjwH9d7lwkl7v+j31xNou23jvaxI4AmPH8za/PACAExv7fcp/CHUn6YGOxxv7fcpM6Avz3xGfbdfNra+sV7kiSy+3Rza+t1ROfbTe5M8A/He9436dwR5LKKqvV8Y73TeoI8F/729/3KdyRJJfbq/a3M56BcEPAAwBBNuXl1dqwp9Svz27YU6opL682uCPAf2+vKdKsxd/59dlZi7/T22uKDO4ICEzPGR/Kx2fhWm7vkc8DDUWXOxeF9PMAgouABwCCqKqqyueZO7/2wcZiVVVVGdQR4D+Px6PpC9cHVGP6G+vl8dRv5g9gtvLycp9n7vxaWWW1ysvLDeoI8F9JSYnPM3d+zeX2qqSk7nUCATQsBDwAEETZT680pM5lz6wypA4QiOe+2FHv17Lq4qr26PkvdhrTEBCgvv/6vEHVAQLR574VDaoOAPMR8ABAEJ1otyxfrN590JA6QCCeW77DkDrPrjCmDhCoE+2WFYo6QCCM2kmHHXmA8EHAAwBBkrt9X4OuB/hi78HDKj7OVuh+1Sqp1N6Dhw2pBfhr9uJvG3Q9wBd3LlzXoOsBMAcBDwAEyX/X7zW03nsbAlvLBwjEpj3Grsmwea9/C48DRnl9daGh9RZ+Y2w9wBfvGnzP8e4GY+sBMAcBDwAEicOg2Q41iksqDa0H+OJAhbELfe8/5DK0HuCrMmdgiyv/WmmAizUDgThc7Ta2XpWx9QCYg4AHAIIkLSXe0HrpqXZD6wG+aJoYa2i9Zo3iDK0H+Co5PsbQeil2Y+sBvkiIsRlbL9bYegDMQcADAEEytlcrQ+uN6ZluaD3AF91bpxpar1urFEPrAb66pF+GofUuPs3YeoAvxhl8zzGup7H1AJiDgAcAgmRQpxYNuh7gi1aNE5Ru0Ky0Vql2tWqcYEgtwF/TRp7aoOsBvrj34t4Nuh4AcxDwAEAQ9c00ZtZDv7aNDakDBGLS0A6G1LlmiDF1gEDFGnRnbFQdIBCWBlYHgPn4zw8ABFHOnwcYUmfBn/obUgcIxKTBHRRnC+xWIi7GqqsGtzemISBAa/72mwZVBwjE2juGNKg6AMxHwAMAQRQbG6tRPQJbO2dUj3TFxhq7wC3gD6vVqlkX9wqoxqzf95LVyu0IGoakpCQlB7g4crI9RklJSQZ1BPgvNTVVcbbA5t/E2SxKTTV2zTUA5uGOCgCC7MkJ/dSztX8LyvZsnaInJ/QzuCPAfxf2baPpI7v69dnpI7vqwr5tDO4ICMyGGSPk7zOxzXLk80BDsfXe0SH9PIDgIuABgBD4701DfZ7JM6pHuv5701CTOgL8d91ZnfTIpX3q/bpWXIxVj1zaR9ed1cnkzgD/fH/f+T7P5Em2x+j7+843qSPAfzvvP9/nmTxxNot23s94BsKNxev1ekPdBBqGwsJCZWZmSpIKCgqUkcH2noDZqqqqdNkzq7R698E6z+nXtrEW/Kk/r2WhwfN4PHr+i516Znm+ikudxxxvlWrXNUM66KrB7XktC2GhvLxcff/1uao8dZ8Taz2y5g6vZaGhKykpUZ/7VuhED38WHVlzh9eyAPOZ8fxNwINaBDxAaOVu36f3NhSruKRS6al2jemZzlboCFt7Dx7W5r2l2n/IpWaN4tStVQpboSOszV78rRZ+U6jSymql2GN08WkZbIWOsHXnwnV6d8NeHa5yKyHWpnE9W7EVOhBkBDwwFQEPAAAAAADmM+P5m/nRAAAAAAAAYY6ABwAAAAAAIMwR8AAAAAAAAIQ5Ah4AAAAAAIAwR8ADAAAAAAAQ5gh4AAAAAAAAwhwBDwAAAAAAQJgj4AEAAAAAAAhzBDwAAAAAAABhjoAHAAAAAAAgzBHwAAAAAAAAhDkCHgAAAAAAgDBHwAMAAAAAABDmCHgAAAAAAADCHAEPAAAAAABAmCPgAQAAAAAACHMEPAAAAAAAAGGOgAcAAAAAACDMxYS6AQDAEWWVVSouqdQhl1uN4mxKT7Ur2R4b6rYAv7y3tkg5qwv1Q5lTLZPjld0vQ2P6tAl1W4DfGNOIJNxzAJHJ4vV6vaFuIhyUlpaqSZMm8ng8dZ4zadIkPfvss4Zcz+FwaMaMGXrvvff0ww8/qEOHDrr22mt10003yWo1Z+JVYWGhMjMzJUkFBQXKyMgw5ToAfub1epWbv1/zcndpyWaH3J6fv5JtVotGdE/ThIHtNCirmSwWSwg7BU7O6XTq7DkrtKekss5zWqfatXTqEMXHxwexM8A/jGlEEu45gIbFjOdvZvDU06pVq+TxeGS1WhUbe/x0u66f+2rXrl0aMmSICgsLJUkWi0XfffedbrnlFq1Zs0YvvviiIdcBEFobi0o0NWettjrKj3vc7fFq0YZiLdpQrC5pSZqT3Uc92qQGuUugfsY9vkLrC0tOet6ekkp1/X8fq1dGqt69YUgQOgP8w5hGJOGeA4gOrMFTTytXrpQkTZkyRZWVlcf968knnwz4OlVVVRo9erQKCwvVrFkzvf3226qqqtKWLVvUp08fvfTSS3rttdcCvg6A0Fq+bZ+y5+bWeaP1a1sd5cqem6vl2/aZ3BnguwH3flyvB+FfWl9YogH3fmxSR0BgGNOIJNxzANGDgKeeagKe008/3dTrPP3009q8ebMsFoveeustXXDBBbLZbOrataveeOMNxcTE6Oabb5bb7Ta1DwDm2VhUosnzVqvC5dv/jitcbk2et1obi3x76ADMNO7xFXKUOf36rKPMqXGPrzC4IyAwjGlEEu45gOhCwFNPeXl5kqSBAweaep2nnnpKkjRmzBgNHTr0qGNZWVm66KKLVFxcrC+//NLUPgCYw+v1amrOWp9vtGpUuNyalrNOLJ+GhsDpdPo8y+HX1heWyOn072EaMBpjGpGEew4g+hDw1MP27du1b98+tWzZUqeccopp1/npp5+0ceNGSVJ2dvZxzxk9erQk6YMPPjCtDwDmyc3fX+8p0nX5zlGmvPwDBnUE+O/sOcbMVBj+MDMe0DAwphFJuOcAog8BTz3k5uZKkpo1a6bx48erXbt2stvtatWqlX73u98ZFrZs37699p8HDRp03HN69eolSdqyZYsh1wQQXC/n7WpQdYBAnGhnIV8UHjSmDhAoxjQiCfccQPQh4KmHmtehvv32W73++utq1qyZhg4dKpvNprfeekujR4/W9ddfH/B19u/fL+nIblzt27c/7jktW7aUJO3cudPn+oWFhSf8a+/evf62DqAeyiqr9OEmhyG1Fm8qVllllSG1AH+8t7aoQdcDfMWYRiThngOITmyTXg8rVhyZZjtq1Cg9+eSTateunSTJ4/Fo7ty5uuGGG/TEE09o2LBhuvTSS/2+Ts372ikpKbLZbMc9p0mTJpLkVxiTmZnpd28AAldcUim3x5j32N0erxyllUq2xxpSD/BVzupCQ+u9/k2hxvRpY2hNwBeMaUQS7jmA6MQMnnp4+umntXDhQr399tu14Y4kWa1WTZkyRdOnT5ckPfjggwFdpybUSUxMrPOcuLg4SdLhw4cDuhaA4Dvk5yKHdSl3spseQucHP3cZqoujlEVpEVqMaUQS7jmA6MQMnnqoaz2cGtdcc43uv/9+rV69Wj/++KOaN2/u13USEhIk/RziHI/VeiSTq6io8Ll+QUHBCY/v3btX/fv397kugPppFHf8mXn+Soo3th7gi5bJ8dpSXGZYvbSUeMNqAf5gTCOScM8BRCcCHgNkZGTU/nN+fr7fAU/N61d79uyp85yffvpJkvzarvCXfQIIvvRUu2xWiyFTpmOsFqWl2A3oCvBPdr8MLdv2o2H1LjmN/0YhtBjTiCTccwDRiVe06qlmfZzj2bdvX+0/WywWv6/Rtm1bSUdevyouLj7uOQ7HkcXSkpKS/L4OgNBItsdqRPc0Q2qN6J7Ou/AIKaPXFmGtEoQaYxqRhHsOIDoR8JzEO++8o7Zt2+qmm26q85ylS5dKOvL6VKdOnfy+VvPmzWtDnq+//vq45+Tl5Un6OQwCEF4mDGx38pOCWAcIROtUY36jm9GY3wyjYWBMI5JwzwFEHwKek2jVqpUKCgr02muvHTVTp4bL5dL9998vSTrrrLNqX7Py13nnnSdJWrBgwXGPf/TRR5Kk0047LaDrAAiNQVnN1CUtsBl4XdOSNTCrqUEdAf5bOnWIIXU+ucWYOkCgGNOIJNxzANGHgOck+vfvryFDhqikpESXXXaZfvzx53ezHQ6HRo8erc2bNys2Nlb33HNPwNf74x//KEl67bXX9M033xx1bMuWLXrrrbckSWPGjAn4WgCCz2KxaE52HyX6ufhhYpxNs7N7B/Q6KGCU+Ph49cpIDahGr4xUxcezGC0aBsY0Ign3HED0IeCphxdffFGZmZn69NNP1aZNG/Xt21d9+vRR27Zt9cknn6hx48Z6/fXXj9lty263y263+xT8DBkyRIMHD1Z1dbXOP/98LVq0SE6nU0uXLtWoUaPkcrnUsWNHjRs3zug/JoAg6dEmVXMn9vP5hisxzqa5E/upR5vAHj4AI717wxClJfv3MJuWHK93b2CmAxoWxjQiCfccQHQh4KmHrKwsrVu3TrfeeqvatGmjjRs3avfu3TrttNM0c+ZMbd++XRdccMExn3M6nXI6naqurvbpeq+88oratm2r4uJinX/++bLb7TrnnHO0c+dO2e12vfjii4qNZaEzIJwN7dxCOZMH1XvqdNe0ZOVMHqShnVuY3Bngu5V3nuvzrIdeGalaeee5JnUEBIYxjUjCPQcQPSxef/bbhun27dun6dOna/78+XK5XJKOvC72+OOP64wzzjDlmoWFhcrMzJQkFRQUsK06EARer1d5+Qc0L2+nPtzkOGo70xirRSO6p2vCwHYamNWUKdJo8JxOp4Y/vEKFByvrPCejsV2f3DKEV1gQFhjTiCTccwANixnP3wQ8DVxJSYm2bdumFi1aqF07c1ewJ+ABQqusskqO0kqVO91KircpLcXOtqQIW++tLdLr3xTKUepUWkq8Ljktg22jEdYY04gk3HMAoUfAA1MR8AAAAAAAYD4znr9ZgwcAAAAAACDMEfAAAAAAAACEOQIeAAAAAACAMEfAAwAAAAAAEOYIeAAAAAAAAMIcAQ8AAAAAAECYI+ABAAAAAAAIcwQ8AAAAAAAAYY6ABwAAAAAAIMwR8AAAAAAAAIQ5Ah4AAAAAAIAwR8ADAAAAAAAQ5gh4AAAAAAAAwhwBDwAAAAAAQJgj4AEAAAAAAAhzBDwAAAAAAABhjoAHAAAAAAAgzMWEugEAwBH/fHuD3lq7RxVV1UqMjdFFfVrr/13YM9RtAX65Zf5qfbDZIVe1V3ExFo3qlqaHL+8X6rYAAJLKKqtUXFKpQy63GsXZlJ5qV7I9NtRtAQiQxev1ekPdBBqGwsJCZWZmSpIKCgqUkZER4o6AyFdaWqo+/1ouzwnOsUpa+7ehSklJCVZbgF9++ukn9X3gy5Oet+a2M9WkSZMgdAQAqOH1epWbv1/zcndpyWaH3J6fHwNtVotGdE/ThIHtNCirmSwWSwg7BaKDGc/fBDyoRcADBNcpd32gyuoTRTtHs8dYteWeUSZ2BPiv4x3vy+3DHYXNIn1/3/nmNQQAqLWxqERTc9Zqq6P8pOd2SUvSnOw+6tEmNQidAdHLjOdv1uABgBDocPv7PoU7klRZ7VGH2983qSPAf+1v9y3ckSS398jnAADmWr5tn7Ln5tYr3JGkrY5yZc/N1fJt+0zuDIDRCHgAIMhOuesD+Tt10vu/zwMNRcc7AgtpAv08AKBuG4tKNHnealW43D59rsLl1uR5q7WxqMSkzgCYgYAHAIKotLTU55k7v1ZZ7VFpaalBHQH+++mnn3yeufNrbu+ROgAAY3m9Xk3NWetzuFOjwuXWtJx1YkUPIHwQ8ABAEPX51/IGVQcIRH0WVA5mHQDAz3Lz99f7tay6fOcoU17+AYM6AmA2Ah4ACKLA5u4YXwcAAESml/N2Nag6AMxHwAMAQfLPtzc06HqAL26Zv7pB1wOAaFZWWaUPNzkMqbV4U7HKKqsMqQXAXAQ8ABAkb63dY2y9dcbWA3zxwWZjHhzMqgcA0ay4pFJujzFr57g9XjlKKw2pBcBcBDwAECQVVdXG1nMZWw/whava2EU3ja4HANHskJ8LK9el3GlsPQDmIOABgCBJjI0xtl6csfUAX8TFWBp0PQCIZo3ibIbWS4o3th4AcxDwAECQXNSntbH1ehtbD/DFqG5pDboeAESz9FS7bFZjgvMYq0VpKXZDagEwFwEPAATJ/7uwZ4OuB/ji4cv7Neh6ABDNku2xGtHdmOB8RPd0JdtjDakFwFwEPAAQREZ96fLlDQAATmTCwHYNqg4A8/GMAABBtPZvQxtUHSAQa247s0HVAQD8bFBWM3VJSwqoRte0ZA3MampQRwDMRsADAEGUkpIie0xgX732GKtSUlIM6gjwX5MmTWQLcIkHm+VIHQCAsSwWi+Zk91GinwsuJ8bZNDu7tywWFsEHwgUBDwAE2ZZ7RsnfWyXL/z4PNBTf33d+SD8PAKhbjzapmjuxn88hT2KcTXMn9tP/b+/ew5us7/+Pv5K0Tc9FChSk5VCOUlQUURBQNkQmioAC6k9wMnBsUxRhINtXmYJDdMrmVBweQCgoIBOYeAI8DIRykCHYgkApp9YSOZTSU9I2ye8PrkSwLaRp2vSG5+O6cq3kvvP+vAOdV/Pq59C5eVwtdQagNhDwAEAQHJh5e7Vn8oSHmHVgJh+GUf8cnHl7tWfyWExnXgcAqF292zXW0rE9fF6u1SEhRkvH9lDvdo1ruTMAgWZyu93uYDeB+iE7O1tJSUmSpCNHjigxMTHIHQEXv9OnT6vLjPVyneces87sucOyLNR3eXl5uub5jRe8b/sTN7IsCwDqmNvt1qask0rddFCfZdjkdP30MTDEbFL/lKYa0b2luic3ZFkWUAdq4/M3AQ+8CHiA4HpmxXdavuMHFZeWKzIsREOuvpyj0GFYj7+7TZ/ssqm03K2wEJNu65TAUegAUE8U2MtkO21XocOpaKtFCbHhHIUO1DECHtQqAh4AAAAAAGpfbXz+Zg8eAAAAAAAAgyPgAQAAAAAAMDgCHgAAAAAAAIMj4AEAAAAAADA4Ah4AAAAAAACDI+ABAAAAAAAwOAIeAAAAAAAAgyPgAQAAAAAAMDgCHgAAAAAAAIMj4AEAAAAAADA4Ah4AAAAAAACDI+ABAAAAAAAwOAIeAAAAAAAAgyPgAQAAAAAAMDgCHgAAAAAAAIMj4AEAAAAAADA4Ah4AAAAAAACDI+ABAAAAAAAwuJBgNwAAOCPTVqCN+4/rx8JSNYkO041tGqltQkyw2wIASCqwl+lovl1FpU5FhVnUNC5cMeGhwW4L8EvuqRJl/JCvk8VlahgZqpTL49SsQUSw2wJQQwQ8ABBETqdTU/+ToWXbcuQod1W4bg0xa2jX5pp2Z4osFksQOgSAS5fb7VZa1gmlph3S6l02OV1u7zWL2aT+KQka0b2leiTHy2QyBbFT4MJcLpfe3nBAb60/INtpR4XrTWOtGt27tUb3bC2zmYUegBGZ3G63+8K34VKQnZ2tpKQkSdKRI0eUmJgY5I6Ai9srn+/TrDV75ct/hE2SJvRrr3F929V2WwAASek5+Zqw9FvttRVe8N72CdGaNbyLOjePq4POgOpbsT1Hk5ftVKmz4i+Tfi7MYtYLQ6/S4Gua10FnwKWrNj5/E80CQBBMXrZDL/kY7kiSW9JLa/Zq8rIdtdkWAEDS+n3HNHxOmk/hjiTttRVq+Jw0rd93rJY7A6pv9leZGr/kW5/CHUkqdbo0fsm3mv1VZi13BiDQCHgAoI698vk+Lf0m26/XLv0mW698vi/AHQEAPNJz8jU2dZuKS53Vel1xqVNjU7cpPSe/ljoDqm/F9hy98Okev177wqd7tGJ7ToA7AlCbCHgAoA45nU7NWrO3RjVmrdkrp7N6HzwAABfmdrs1Yem31Q53PIpLnZq4dIfYAQH1gcvl0uRlO2tUY/K/d8rl8m3mD4DgI+ABgDo09T8ZPi/Lqopb0tMf7gpEOwCAs6RlnfB5WVZV9tgKtCnrZIA6Avz39oYDPi/LqkppuUvzNhwMTEMAah0BDwDUoWXbAjPV+f1t/i3xAgBUbeGmQ/WqDlATb68/EJA6b30dmDoAah8BDwDUkUxbQaVHofvDXuZSpq0gILUAAFKBvUyfZdgCUuvTjKMqsJcFpBbgj9xTJTpayVHoftXKtyv3VElAagGoXQQ8AFBHNu4/HtB6aVknAloPAC5lR/PtcroCs3eO0+WW7bQ9ILUAf2T8ENjNvnflng5oPQC1g4AHAOrIj4WlAa1nKwjMb+YAAFKRnxsrV6XQwWb4CJ6TxYGdQXaiKLA/wwCoHQQ8AFBHmkSHBbReQow1oPUA4FIWFWYJaL1oa2DrAdXRMDI0oPXiowL7MwyA2kHAAwB15MY2jQJar0dyfEDrAcClrGlcuCxmU0BqhZhNSogND0gtwB8pl8cFtF6nZrEBrQegdhDwAEAdaZsQI2tIYP6zGx5qVtuEmIDUAgBIMeGh6p+SEJBa/VOaKiY8sDMogOpo1iBCTWMDM9O3WVy4mjWICEgtALWLgAcA6tDQrs0DUmdY18SA1AEA/GRE95b1qg5QE6N7tw5InTG9AlMHQO0j4AGAOjTtzhTVdAGASdLTAzsFoh0AwFl6JMerfUJ0jWp0SIhR9+SGAeoI8N/onq0VZqnZx72wELNG9WwVmIYA1DoCHgCoQxaLRRP6ta9RjQn92stiYfNOAAg0k8mkWcO7KNLPDZcjwyx6afjVMpkCs5cPUBNms1kvDL2qRjVeuPsqmc18ZASMgv+3AkAdG9e3nYZf598Sq+HXJWpc33YB7ggA4NG5eZzmjOxa7ZAnMsyiOSO7qnPzwG5uC9TE4Guaa/KvOvj12sm/6qDB1wRmaTmAukHAAwBB8MLQqzWxX3ufl2uZJE3s114vDL26NtsCAEjq3a6xlo7t4fNyrQ4JMVo6tod6t2tcy50B1feHPm31j3u6+LxcKyzErH/c00V/6NO2ljsDEGgmt9vtDnYTRuRyueRyuRQSEhLsVgImOztbSUlJkqQjR44oMZFNXIHa5nQ69fSHu7T0m2w5yl0VroeHmjWsa6KeHtiJZVkAUMfcbrc2ZZ1U6qaD+izDJqfrpx+bQ8wm9U9pqhHdW6p7ckOWZaHec7lcmrfhoN5cn6Wjpx0VrjeLC9eYXq01qmcrlmUBdaA2Pn8T8FTD5s2b9dxzz2n9+vU6efKkJCk5OVkPPvigJk2apPDw8ICMs2rVKg0cOPC896SmpmrEiBEBGc+DgAcIrkxbgdKyTshW4FBCjFU9kuM5Ch0A6okCe5lsp+0qdDgVbbUoITaco9BhWLmnSrQr97ROFJUqPipMnZrFchQ6UMdq4/P3xTP9pJbNnz9fo0ePltPpVGRkpLp3764ff/xRWVlZmjp1qj799FN98cUXslqtNR5r06ZNkqSQkJAqf2PPb/KBi0/bhBgCHQCop2LCQwl0cNFo1iCCQAe4CDH3zgc7duzQb3/7WzmdTk2cOFE2m01paWnKzMzUq6++KknauHGj/va3vwVkvM2bN0uS3nvvPdnt9kof9913X0DGAgAAAAAAxkfA44PJkyertLRUkydP1osvvqjo6DMb7plMJj388MMaNGiQpDOBTE253W5t3bpVknTdddfVuB4AAAAAALj4EfBcQFFRkSIjI9WtWzdNnTq10nu6desmSfrhhx9qPN6uXbuUn5+vhIQEtWrVqsb1AAAAAADAxY89eC4gKipKy5cvP+89nmAnKiqqxuOlpaVJkm666aYa1wIAAAAAAJcGZvDUkNPp1MqVKyVJffv2rXE9T8Bz+vRp9e/fX02bNlV4eLiSk5P129/+Vrt27arxGAAAAAAA4OJCwFNDc+fOVU5OjiRp/PjxNa63ceNGSdJnn32mtLQ0JScn64YbbtDJkyf15ptvqkuXLlq0aFGNxwEAAAAAABcPlmjVQG5urqZMmSJJGjVqlK655poa1Tt+/Lj27NkjSXriiSf0f//3f4qJOXNkckFBgSZMmKC33npLo0ePVu/evdWiRYtq1c/Ozj7v9dzcXP8aBwAAAAAAQUXA4yeXy6UHHnhAJ0+eVMuWLTVr1qwa14yMjNTatWtVXl6uW2+99ZxrMTExeuONN5SRkaG0tDT985//1Isvvlit+klJSTXuEQAAAAAA1D8s0fLTU089pbVr18pqtWrJkiVq0KBBjWtGRkbql7/8ZYVwx8NkMmn06NGSpE8//bTG4wEAAAAAgIsDM3j8sGTJEs2YMUOS9Prrr+uGG26os7ETExMlSVlZWdV+7ZEjR857PTc3V9dff71ffQEAAAAAgOAh4KmmtLQ0jRo1StKZfXI8XweK0+mU2+1WSEjl/zTHjh2TdGY2T3V5wiEAAAAAAHBxYYlWNWRkZGjgwIEqKSnRsGHD9NxzzwW0/l/+8hfFx8fr/fffr/KeL7/8UpLUvn37gI4NAAAAAACMi4DHR+np6erbt69OnDihm2++WampqX7NojmfqKgo5efn69VXX630emZmpt59911J0l133RXQsQEAAAAAgHER8PjAZrPplltukc1m05VXXqmVK1fKarUGfJzRo0erQYMG2rhxoyZNmiSHw+G9tm3bNt1yyy2y2+1KSkrSuHHjAj4+AAAAAAAwJgIeH7z44ouy2WySpN27dyshIUHh4eGVPtatW+d9nee5Z5991qdx4uPjlZqaKqvVqhdffFFNmzZVt27d1KFDB1133XU6dOiQOnXqpNWrVwfk1C4AAAAAAHBxIODxwbfffuv9ury8XA6Ho8qHy+Xy3ut5rry83Oex7rjjDm3fvl3333+/QkNDtWPHDuXn5+tXv/qV3n77bW3fvl0dO3YM5NsDAAAAAAAGxylaPlizZo1fr3O73X697oorrtDChQv9ei0AAAAAALj0EPAAAICAy7QVaOP+4/qxsFRNosN0Y5tGapsQE+y2AL8V2Mt0NN+uolKnosIsahoXrpjw0GC3BQCAFwEPAAAICKfTqan/ydCybTlylLsqXLeGmDW0a3NNuzNFFoslCB0C1eN2u5WWdUKpaYe0epdNTtdPs7MtZpP6pyRoRPeW6pEcH/DTVQEAqC4CHgAAUGOvfL5Ps9bs1fkWJzvKXVq0+Yje3XxEE/q117i+7eqsP6C60nPyNWHpt9prK6z0utPl1sffHdXH3x1V+4RozRreRZ2bx9VxlwAA/IRNlgEAQI1MXrZDL10g3DmbW9JLa/Zq8rIdtdkW4Lf1+45p+Jy0KsOdn9trK9TwOWlav+9YLXcGAEDVCHgAAIDfXvl8n5Z+k+3Xa5d+k61XPt8X4I6AmknPydfY1G0qLnVW63XFpU6NTd2m9Jz8WuoMAIDzI+ABAAB+cTqdmrVmb41qzFqzV05n9T5IA7XF7XZrwtJvqx3ueBSXOjVx6Q6/T1IFAKAmCHgAAIBfpv4nw+dlWVVxS3r6w12BaAeosbSsEz4vy6rKHluBNmWdDFBHAAD4joAHAAD4Zdm2nIDUeX+bf0u8gEBbuOlQvaoDAEB1EPAAAIBqy7QVVHoUuj/sZS5l2goCUgvwV4G9TJ9l2AJS69OMoyqwlwWkFgAAviLgAQAA1bZx//GA1kvLOhHQekB1Hc23y+kKzN45TpdbttP2gNQCAMBXBDwAAKDafiwsDWg9W4EjoPWA6iryc2PlqhQ62DwcAFC3CHgAAEC1NYkOC2i9hBhrQOsB1RUVZglovWhrYOsBAHAhBDwAAKDabmzTKKD1eiTHB7QeUF1N48JlMZsCUivEbFJCbHhAagEA4CsCHgAAUG1tE2JkDQnMjxHhoWa1TYgJSC3AXzHhoeqfkhCQWv1TmiomPDQgtQAA8BUBDwAA8MvQrs0DUmdY18SA1AFqakT3lvWqDgAA1UHAAwAA/DLtzhTVdEGLSdLTAzsFoh2gxnokx6t9QnSNanRIiFH35IYB6ggAAN8R8AAAAL9YLBZN6Ne+RjUm9Gsvi4XNaFE/mEwmzRreRZF+brgcGWbRS8OvlskUmL18AACoDgIeAADgt3F922n4df4tsRp+XaLG9W0X4I6AmuncPE5zRnatdsgTGWbRnJFd1bl5XC11BgDA+RHwAACAGnlh6NWa2K+9z8u1TJIm9muvF4ZeXZttAX7r3a6xlo7t4fNyrQ4JMVo6tod6t2tcy50BAFA1k9vtdge7CdQP2dnZSkpKkiQdOXJEiYlsegkA8J3T6dTTH+7S0m+y5Sh3VbgeHmrWsK6JenpgJ5ZlwRDcbrc2ZZ1U6qaD+izDJqfrpx+bQ8wm9U9pqhHdW6p7ckOWZQEAqqU2Pn8T8MCLgAcAECiZtgKlZZ2QrcChhBireiTHcxQ6DK3AXibbabsKHU5FWy1KiA3nKHQAgN9q4/N3SI0rAAAA/EzbhBgCHVxUYsJDCXQAAPUae/AAAAAAAAAYHAEPAAAAAACAwRHwAAAAAAAAGBwBDwAAAAAAgMER8AAAAAAAABgcAQ8AAAAAAIDBEfAAAAAAAAAYHAEPAAAAAACAwRHwAAAAAAAAGBwBDwAAAAAAgMER8AAAAAAAABgcAQ8AAAAAAIDBEfAAAAAAAAAYHAEPAAAAAACAwRHwAAAAAAAAGBwBDwAAAAAAgMER8AAAAAAAABgcAQ8AAAAAAIDBhQS7AQDAGQX2Mh3Nt6uo1KmoMIuaxoUrJjw02G0Bfsk9VaKMH/J1srhMDSNDlXJ5nJo1iAh2WwAAABctAh4ACCK32620rBNKTTuk1btscrrc3msWs0n9UxI0ontL9UiOl8lkCmKnwIW5XC69veGA3lp/QLbTjgrXm8ZaNbp3a43u2VpmM5OIAQAAAsnkdrvdF74Nl4Ls7GwlJSVJko4cOaLExMQgdwRc3NJz8jVh6bfaayu84L3tE6I1a3gXdW4eVwedAdW3YnuOJi/bqVKn64L3hlnMemHoVRp8TfM66AwAAKD+qY3P3/z6DACCYP2+Yxo+J82ncEeS9toKNXxOmtbvO1bLnQHVN/urTI1f8q1P4Y4klTpdGr/kW83+KrOWOwMAALh0EPAAQB1Lz8nX2NRtKi51Vut1xaVOjU3dpvSc/FrqDKi+Fdtz9MKne/x67Quf7tGK7TkB7ggAAODSRMADAHXI7XZrwtJvqx3ueBSXOjVx6Q6xuhb1gcvl0uRlO2tUY/K/d8rl8m3mDwAAAKpGwAMAdSgt64TPy7KqssdWoE1ZJwPUEeC/tzcc8HlZVlVKy12at+FgYBoCAAC4hBHwAEAdWrjpUL2qA9TE2+sPBKTOW18Hpg4AAMCljIAHAOpIgb1Mn2XYAlLr04yjKrCXBaQW4I/cUyU6WslR6H7Vyrcr91RJQGoBAABcqgh4AKCOHM23y+kKzN45TpdbttP2gNQC/JHxQ2A3+96Vezqg9QAAAC41BDwAUEeK/NxYuSqFjsDWA6rjZHFgZ5CdKCoNaD0AAIBLDQEPANSRqDBLQOtFWwNbD6iOhpGhAa0XHxUW0HoAAACXGgIeAKgjTePCZTGbAlIrxGxSQmx4QGoB/ki5PC6g9To1iw1oPQAAgEsNAQ8A1JGY8FD1T0kISK3+KU0VEx7YGRRAdTRrEKGmsdbA1IoLV7MGEQGpBQAAcKki4AGAOjSie8t6VQeoidG9WwekzphegakDAABwKSPgAYA61CM5Xu0TomtUo0NCjLonNwxQR4D/RvdsrTBLzX6UCAsxa1TPVoFpCAAA4BJGwAMAdchkMmnW8C6K9HPD5cgwi14afrVMpsDs5QPUhNls1gtDr6pRjRfuvkpmMz+OAAAA1BQ/UQFAHevcPE5zRnatdsgTGWbRnJFd1bl5YDe3BWpi8DXNNflXHfx67eRfddDga5oHuCMAAIBLEwEPAARB73aNtXRsD5+Xa3VIiNHSsT3Uu13jWu4MqL4/9Gmrf9zTxeflWmEhZv3jni76Q5+2tdwZAADApSMk2A0AwKWqc/M4fTb+Jm3KOqnUTQf1WYZNTpfbez3EbFL/lKYa0b2luic3ZFkW6rXB1zTXnVc307wNB/Xm+iwdPe2ocE+zuHCN6dVao3q2YlkWAABAgBHwAEAQmUwm9WgTrx5t4lVgL5PttF2FDqeirRYlxIZzFDoMxWw2a3TvZI3unazcUyXalXtaJ4pKFR8Vpk7NYjkKHQAAoBYR8ABAPRETHkqgg4tGswYRBDoAAAB1iPnRAAAAAAAABkfAAwAAAAAAYHAEPAAAAAAAAAZHwAMAAAAAAGBwBDwAAAAAAAAGR8ADAAAAAABgcAQ8AAAAAAAABkfAAwAAAAAAYHAEPAAAAAAAAAZHwAMAAAAAAGBwBDwAAAAAAAAGR8ADAAAAAABgcAQ8AAAAAAAABkfAAwAAAAAAYHAEPAAAAAAAAAZHwAMAAAAAAGBwBDwAAAAAAAAGR8ADAAAAAABgcCHBbgAAcEaBvUxH8+0qKnUqKsyipnHhigkPDXZbAAAAAAyAGTzVVFZWppkzZ6pTp06yWq26/PLL9dhjjyk/Pz/gY+3fv18jR45UQkKCwsPD1aVLF6WmpgZ8HADB43a7tXH/cf1+4TZ1mbZG/f6+ToNf26B+f1+nLtPW6A+Ltmnj/uNyu93BbhUAAABAPWZy86nBZw6HQ3fccYfWrl0rSTKZTN4PXZ07d9aGDRsUGxsbkLG2b9+uPn366PTp0xXGmjp1qp555pmAjHO27OxsJSUlSZKOHDmixMTEgI8B4CfpOfmasPRb7bUVXvDe9gnRmjW8izo3j6uDzgAAAADUptr4/M0MnmoYN26c1q5dK7PZrBdeeEEFBQU6fvy4RowYofT0dD3xxBMBGScvL0+33XabTp8+rdatW+u///2vysvLtWXLFrVs2VLPPvus0tLSAjIWgOBYv++Yhs9J8ynckaS9tkINn5Om9fuO1XJnAAAAAIyIgMdH3333nd5++21J0rRp0zRp0iRFRUUpPj5ec+fOVYcOHTRnzhylp6fXeKwZM2bIZrMpIiJCn332mW666SaZzWZ169ZNqampcrlceuyxx2o8DoDgSM/J19jUbSoudVbrdcWlTo1N3ab0nMAvCQUAAABgbAQ8PnrjjTfkcrnUqFEjTZo06ZxroaGhevTRR+V2u7V8+fIajVNeXq633npLkjRmzBi1a9funOu9e/dWt27dtHXrVh0+fLhGYwGoe263WxOWflvtcMejuNSpiUt3sCcPAAAAgHMQ8Pho3bp1kqRBgwYpLCyswvUBAwZIkj755JMajfPdd9/p1KlTkqThw4dXeo9nrE8//bRGYwGoe2lZJ3xellWVPbYCbco6GaCOAAAAAFwMCHh8lJmZKUnq0aNHpddbtWql2NhYff/99wEZx2KxqFu3bpXec9VVV0lSjccCUPcWbjpUr+oAAAAAuDiEBLsBI7Db7SouLpYktW/fvsr7GjdurP379+v06dN+n6Z14sQJSVLLli1ltVorvadJkyaSpIMHD1ardnZ29nmv5+bmVqsegOopsJfpswxbQGp9mnFUBfYyxYSHBqQeAAAAAGMj4PGBw+Hwfn3ZZZdVeZ/nWm5urt8Bj2csX8epDs8RbACC42i+XU5XYPbOcbrcsp22E/AAAAAAkMQSLZ9YLBbv15GRkVXe59mbp6SkpMZj1fY4AOpekZ8bK1el0BHYegAAAACMixk8PoiIiPB+XdkGyx5m85m8zLOcqyZj1cY4R44cOe/13NxcXX/99dWqCcB3UWGWC99UDdHWwNYDAAAAYFwEPD6wWCyKiYlRQUGBcnJylJiYWOl9eXl5klSj44s9y69ycnKqvMffcarqG0DdaBoXLovZFJBlWiFmkxJiwwPQFQAAAICLAUu0fNSiRQtJ0oEDB6q8x2Y7s3lqdHR0jcc5ePBglQFOIMYBUPdiwkPVPyUhILX6pzRl/x0AAAAAXgQ8Puratask6Ztvvqn0+v79+3X8+HFJP4U0/khJSZHVapXdbldGRkal92zatKnG4wAIjhHdW9arOgAAAAAuDgQ8PurXr58kadmyZXI6K25sumbNGklSq1atznsC1oVERESoV69ekqTFixdXeo9nrGuvvdbvcQAER4/keLVPqNnsuw4JMeqe3DBAHQEAAAC4GBDw+GjIkCGKjY3VoUOHNHv27HOu2e12zZo1S5J0xx131HisBx98UJL06quvKjs7+5xrX3zxhTZv3hywsQDULZPJpFnDuyjSzw2XI8Msemn41TKZTAHuDAAAAICREfD4KCoqSo888ogkacKECXr55ZdVUFCgPXv26I477tC+ffsUEhKicePGeV9z6NAhhYeHKzw8XKmpqT6PNWzYMLVu3Vr5+fm65ZZbtGHDBtntdi1fvlzDhg2TJN10003eZWMAjKVz8zjNGdm12iFPZJhFc0Z2VefmcbXUGQAAAACjIuCphqlTp+rWW29VeXm5xo8fr9jYWHXs2FGff/65JGnmzJlq376993632y2HwyGHw1Hpsq6qWK1WLVu2TJdddpn27NmjXr16KSIiQnfddZdOnjyphg0b6s033wz4+wNQd3q3a6ylY3v4vFyrQ0KMlo7tod7tGtdyZwAAAACMiICnGqxWqz766CM9++yzatjwp/0vEhMTtXDhQk2cOPGc+1u1aiW32y232+1dduWra6+9Vtu2bdPgwYNlNv/0z9SvXz9t3rz5nCAJgDF1bh6nz8bfpPce6q4BVzaVxXzusqsQs0m3X9lM7z3UXZ+O783MHQAAAABVMrmrOosb5+VwOLR7926FhYXpiiuuqNX9MI4dO6aDBw8qMTFRzZo1q7VxsrOzlZSUJEk6cuSIEhMTa20sABUV2MtkO21XocOpaKtFCbHhHIUOAAAAXIRq4/N3SI0rXKKsVqu6dOlSJ2M1btxYjRuzLAO42MWEhxLoAAAAAPALS7QAAAAAAAAMjoAHAAAAAADA4Ah4AAAAAAAADI6ABwAAAAAAwOAIeAAAAAAAAAyOgAcAAAAAAMDgCHgAAAAAAAAMjoAHAAAAAADA4Ah4AAAAAAAADI6ABwAAAAAAwOAIeAAAAAAAAAyOgAcAAAAAAMDgCHgAAAAAAAAMjoAHAAAAAADA4Ah4AAAAAAAADI6ABwAAAAAAwOAIeAAAAAAAAAyOgAcAAAAAAMDgCHgAAAAAAAAMLiTYDaD+KC8v936dm5sbxE4AAAAAALh4nf2Z++zP4jVBwAOvY8eOeb++/vrrg9gJAAAAAACXhmPHjqlVq1Y1rsMSLQAAAAAAAIMzud1ud7CbQP1gt9v13XffSZIaN26skJD6P8ErNzfXO9toy5YtatasWZA7AvzH9zMuJnw/42LD9zQuJnw/42Ji1O/n8vJy7yqaK6+8UuHh4TWuWf8/waPOhIeHq1u3bsFuw2/NmjVTYmJisNsAAoLvZ1xM+H7GxYbvaVxM+H7GxcRo38+BWJZ1NpZoAQAAAAAAGBwBDwAAAAAAgMER8AAAAAAAABgcAQ8AAAAAAIDBEfAAAAAAAAAYHAEPAAAAAACAwRHwAAAAAAAAGJzJ7Xa7g90EAAAAAAAA/McMHgAAAAAAAIMj4AEAAAAAADA4Ah4AAAAAAACDI+ABAAAAAAAwOAIeAAAAAAAAgyPgAQAAAAAAMDgCHgAAAAAAAIMj4AEAAAAAADA4Ah4AAFBrXC6XysvLg90G4LfTp09rypQpat26tcxmsywWizp16qSnn35aDocj2O0BAOBFwAPDKisr08yZM9WpUydZrVZdfvnleuyxx5Sfnx/s1oAa+f3vfy+TyaSDBw8GuxXAL5s3b9bgwYMVHx8vi8Wi0NBQtWnTRtOnT5fdbg92e4DPCgoK1LNnTz3//PM6ePCgWrRoofj4eO3evVvPPPOMevTooZKSkmC3CdTY5s2bFRYWpj59+gS7FcBnp0+flsVikclkqvIxZsyYYLdZpwh4YEgOh0MDBgzQn/70J+3evVtlZWXKzc3VP//5T/Xq1UunT58OdouAX55//nn961//CnYbgN/mz5+vnj17auXKlbLb7erevbuSk5OVlZWlqVOnqm/fvsx6gGE89thjSk9PV5cuXbR7924dPHhQNptNH3zwgaKjo7V9+3bNmDEj2G0CNZKfn6/77rtPZWVlwW4FqJYtW7bI5XLJbDbLarVW+ggNDQ12m3WKgAeGNG7cOK1du1Zms1kvvPCCCgoKdPz4cY0YMULp6el64okngt0iUG2zZs3Sn/70p2C3Afhtx44d+u1vfyun06mJEyfKZrMpLS1NmZmZevXVVyVJGzdu1N/+9rcgdwpc2Hfffad58+YpLi5OH3/8sTp27ChJMplMGjJkiJ566ilJ0sKFC4PZJlBjv/3tb3XgwIFgtwFU2+bNmyWdmf1ut9srfbz++utB7rJuEfDAcL777ju9/fbbkqRp06Zp0qRJioqKUnx8vObOnasOHTpozpw5Sk9PD3KngG+Ki4t13333aeLEiUpMTAx2O4DfJk+erNLSUk2ePFkvvviioqOjJZ35QPzwww9r0KBBkqT33nsvmG0CPlm+fLlCQkI0btw4NWvWrML1Ll26SJJ++OGHOu4MCJw333xTS5culclkCnYrQLV5Ap7rrrsuyJ3UHwQ8MJw33nhDLpdLjRo10qRJk865FhoaqkcffVRut1vLly8PUodA9Tz99NNavHixbrjhBm3ZsiXY7QB+KSoqUmRkpLp166apU6dWek+3bt0k8YEYxjB16lQVFxfrySefrPR6dna2JKlp06Z12RYQMLt27dL48eNlMpk0ceLEYLcDVNumTZskSd27dw9yJ/UHAQ8MZ926dZKkQYMGKSwsrML1AQMGSJI++eSTOu0L8JfZbNb06dP19ddf80EBhhUVFaXly5dry5YtioqKqvQeT7BT1XWgvgkNDZXVaq3wfFlZmWbPni1J3plpgJHY7Xbdc889Ki4u1h//+EfdfvvtwW4JqJbMzEwdO3ZMTZo08S6hBQEPDCgzM1OS1KNHj0qvt2rVSrGxsfr+++/rsi3Ab9OnT9eTTz6pkJCQYLcC1Bqn06mVK1dKkvr27RvkbgD/7dq1S3fccYe2bdumli1b6i9/+UuwWwKqbfz48UpPT9eNN97IRuEwpLS0NElSfHy87rvvPrVs2VLh4eFq1qyZ7rrrrkv2l/0EPDAUu92u4uJiSVL79u2rvK9x48bKy8vjNC0YwqW2uz8uTXPnzlVOTo6kMx8sAKNZsGCB2rRpo5SUFK1evVrXXXed/vvf/yo+Pj7YrQHVsmzZMs2ZM0fx8fFasmQJv2CCIW3cuFGStHv3br3//vuKj49X7969ZbFYtHz5cg0YMEAPP/xwkLusewQ8MJSzj9a97LLLqrzPcy03N7fWewIAnF9ubq6mTJkiSRo1apSuueaaIHcEVF95ebkKCwu9f7bZbNq5c2cQOwKq79ChQ3rooYdkMpm0YMECDneAYX399deSpNtuu0379+/X//73P61Zs0aHDx/W7NmzZTabNXv2bC1ZsiTIndYtAh4YisVi8X4dGRlZ5X2evXlKSkpqvScAQNVcLpceeOABnTx5Ui1bttSsWbOC3RLgl9/85jey2WzasmWLBg4cqCNHjmjIkCFatWpVsFsDfFJeXq777rtPp06d0uTJk737VgJG9MYbb2jZsmVasWKFWrZs6X3ebDbr97//vSZPnixJ+tvf/hasFoOCgAeGEhER4f26sg2WPczmM9/anuVcAIDgeOqpp7R27VpZrVYtWbJEDRo0CHZLQI1069ZNK1eu1MCBA+V0OjV27Fg5nc5gtwVc0FNPPaW0tDT17NlTzz77bLDbAWqkR48euvvuu6v8TDhmzBhJ0rZt23T8+PG6bC2oCHhgKBaLRTExMZLk3cuhMnl5eZIkt9tdJ30BACpasmSJd/PO119/XTfccEOQOwICw2QyadKkSZLOnA63e/fuIHcEnN/atWv1/PPPq1GjRlq8eDH77uCid/byw6ysrCB2UrcIeGA4LVq0kCQdOHCgyntsNpskKTo6uk56AgCcKy0tTaNGjZIkPfHEE96vAaMoLy/Xrl27qpyd07ZtW+/XHOqA+m7hwoVyu906fvy4kpKSZDKZznn84he/kCT997//9T73zjvvBLdp4ALO3p/1544dO+b92mQy1UU79QIBDwyna9eukqRvvvmm0uv79+/3TsPzhEEAgLqTkZGhgQMHqqSkRMOGDdNzzz0X7JaAauvatatSUlK0fPnySq8fPnzY+3VCQkJdtQX4JTQ0VFartcqH50RPk8nkfe7svS+B+mTlypVq0aKFHn300Srv+fLLLyWd2brj7ED+YkfAA8Pp16+fpDNHPFb2W7U1a9ZIklq1anXek7YAAIGXnp6uvn376sSJE7r55puVmpp6Sf3mDBeP2267TZI0ZcoUnTp1qsL1V155RdKZnzfatGlTl60B1fbmm2/KbrdX+Vi9erUk6aabbvI+N3LkyCB3DVSuWbNmOnLkiJYsWXLOTB2P0tJSzZw5U5LUp0+fS+ozIQEPDGfIkCGKjY3VoUOHNHv27HOu2e127wktd9xxRzDaA4BLls1m0y233CKbzaYrr7xSK1eulNVqDXZbgF8effRRxcXFaf/+/br55pv1xRdfqKSkRPn5+frLX/6iRYsWSZKmTZsW5E4B4NJy/fXXq1evXsrPz9e99957zibKNptNAwYM0K5duxQaGnrJbShOwAPDiYqK0iOPPCJJmjBhgl5++WUVFBRoz549uuOOO7Rv3z6FhIRo3LhxQe4UAC4tL774oncPtN27dyshIUHh4eGVPtatWxfkboHzu/zyy7V06VJFRUVp586d6tu3r6KiotSgQQNNmzZNZrNZ06dPZ5YDAATB/PnzlZSUpC+++ELNmzfXNddcoy5duqhFixb6/PPP1aBBA73//vvq0aNHsFutUwQ8MKSpU6fq1ltvVXl5ucaPH6/Y2Fh17NhRn3/+uSRp5syZat++fZC7BIBLy7fffuv9ury8XA6Ho8qHy+UKXqOAj2699Vbt3LlTDz30kJKSkmSxWNS4cWMNHTpUGzZs0JNPPhnsFgHgkpScnKwdO3Zo0qRJat68udLT03X48GFde+21mj59ujIzMzVo0KBgt1nnTG7OkYZBlZeX6/nnn9esWbN08uRJSWeOw5s5c6buv//+IHcHAAAAAEDdIeCB4TkcDu3evVthYWG64oor2MwTAAAAAHDJIeABAAAAAAAwOPbgAQAAAAAAMDgCHgAAAAAAAIMj4AEAAAAAADA4Ah4AAAAAAACDI+ABAAAAAAAwOAIeAAAAAAAAgyPgAQAAAAAAMDgCHgAAAAAAAIMj4AEAAAAAADA4Ah4AAAAAAACDI+ABAAAAAAAwOAIeAAAAAAAAgyPgAQAA9cb69eu1du1a5ebmBrsVn9hsNn311VdKS0u74L1Hjx71qebWrVs1b948LVmyRCdPnvSrr127dmn16tU6deqUX6+vjvz8fH3wwQcqKCio8p5nnnlG06dP1//+9z/vcwcOHNCcOXMC3s/Ro0f1+OOPq1WrVsrOzg54fQAA6iuT2+12B7sJAAAASWrZsqUOHz6sRYsW6f/9v/93wfv/+te/6pVXXtEvf/lLvfvuuz6NsWDBAh0+fPiC90VHR2v8+PHnvWfp0qW655571K5dO+3du7fK+xYvXqwxY8bo3Xff1Z133nnems8++6yeeuopSdLp06cVExNzwV5/7v/+7/80Y8YMNWnSRIcOHVJ4eHi1a/hqwYIF+vWvf62wsDB9+eWXuvHGGyvc06ZNG2VlZWnQoEFasWKFjh07ptatW8tutys9PV0dO3YMWD+FhYVq0aKF8vLyNGXKFD333HMBqw0AQH0WEuwGAAAAPKKioiRJYWFhPt1fWloqm82m4uJin8dYtGiRVq9efcH7WrdufcGAJzo6WpIUGRlZ5T1lZWV6+eWXVVRUpLvvvluLFy/W3XffXeX9njCmUaNGfoU7kvTVV19JkiZMmFCr4Y4k/fvf/5YkDRs2rNJw5/Dhw8rKypIkTZ06VZLUuHFjDR8+XPPmzdPTTz+txYsXB6yf6Oho3XvvvXr99deVmpqqv/71rzKbmbQOALj4EfAAAIB6IzQ0VJJktVorXPv888/1zDPP6LbbbtOf/vSnc+6r7P6qeAKPwYMHq2vXrhWuHzhwQHPnzq0QjBQXF6u4uFhhYWGKjY2VJIWEhJzzv1W9pzVr1mjIkCFau3at7rvvPq1cuVK33XZbpfd73ktcXJzP7+lseXl52rx5s0JCQjRq1Ci/avjq1KlTWr16tUJDQ6ucKfPBBx9Ikrp06aJrr73W+/y0adO0aNEipaWlqbCw0BuWnc+CBQs0bdq0C97nWS6Wk5Oj5OTkCv8+5eXlKi0tld1u1/jx473BEwAARkbAAwAA6g2LxSKp8hk833zzjdavX6/Q0FBvwOMJYaozS8Uzxu23364xY8ZUuP7VV19p7ty53rDJY8aMGfrrX/+qO+64Qx9++KEk+TwzJDo6WqtWrVLfvn21YcMGDR06VBs2bFCXLl2q7O/n4/tqxYoVcjqd6t+/v5o0aSJJcrvdcrvdKi8vV3l5uex2u2JiYvT+++/rgQceuGDNiIiISvfYWbBggex2ux544AElJSVV+lrPDJ+fL7lLTEzU2rVrdcMNNygsLExOp1OlpaUqKipSgwYNKg3NSkpKtH//flmtVjVq1KjKfkNDQ9W8eXNJ8r5nD8/fg8PhkMPhOOcaAABGRsADAADqDU9gYrFY5HK5ZLfbvcufduzYIUm66aabKtxvMpmqPcaF/LymZ7mUv8umrFarPvjgA3Xr1k39+/dXp06dznu/y+XyaxzPXkSfffbZef9e0tLSFBERIafTqdDQUF1//fUV7snLy9OuXbuqnCHl2SR54sSJkqTvvvtO77zzjh544AFdffXV2r9/v77++mtJ0uTJkzV58mSf3sPu3bsr3ZfHE/r07t1ba9asOefae++9pw0bNuiGG27QyJEjK7x21qxZWrdunX71q1/pd7/7nU99AABgJAQ8AAAgqA4fPqyEhIRzQoTvvvtOf/jDH3TXXXdp5syZkn4KeCpbVnU2l8ul0tJSFRYWVjoTxN/zJTwzavydWSNJTZo00fr165WUlFRl+FJWViZJstvt1a6/f/9+ff7555LObGwsSSdPnlReXp7i4uLOmfUSHh7unfnUsGFDbxBztlWrVmngwIGVBjyrV6/Wrl271K9fP1111VXe+2fNmqWlS5cqPT1db7zxhvf+nj17nvNvsXXrVhUXF3tn8Hhm1Dgcjir3YPK8vrK/u61bt+q1116T2+2uNODZs2ePVq5cqVatWlVaGwAAoyPgAQAAQTVgwAB9//332r17t/e5pKQk5eTk6I033tBTTz0lt9utPXv2SJIGDhxYocb8+fM1f/78Cs9XNhPE15kxPw+C/JktVJkWLVqc97rD4ZB05gSt6vr73/8ut9utW265xTvDxXOi1pgxY/Tiiy+ec/+xY8d8qltZSOY56WvChAne59555x1J0iuvvKKQkBC99dZb3tesWrVKDRo08P65c+fOysjI0OLFi6sdulT2b3Ch/Zg8odH5NsQGAMDICHgAAEDQOJ1OZWZmymQynfMhv0GDBrrnnns0b948LV++XA0bNpTT6VRERIQuv/xy7335+fk6fvy4YmJivPvNePZyKSwsrHQ5lmeGzLRp0/Tqq69WuF5YWCjpzAld/nK5XDpx4oSioqIUERFRrVDIE+zk5+fL4XD4vIH0Dz/8oLlz50qSJk2a5H3eExhVNivG175+ft8LL7ygLVu2KCUlRf3791d+fr5WrVqlvXv36uabb9bgwYP117/+VSdPnvSpfnVZLBZ99NFHGjVqlCIiImS1Wr1jzZ8/Xx9//HGF1/z444+SpDfeeEPLli1TeXm5SkpKNGTIEM2ePbtW+gQAoC4R8AAAgKA5ePCgHA6HrrjiigpLn0aOHKl58+Zp4cKFatasmSRp9OjReuWVV7z3/OMf/9Djjz+uu+66yzt75EI8R6ofOXJER44cqfK+kpKSar6bn/z444/ens/Wpk0bZWZmnve1noDH7Xbr0KFDat++vU9jLliwQC6XS3369NGtt97qfd6z1CsiIsLX9s+rsLBQTz/9tCTp0KFDiomJUVFRkff6zJkzdejQIc2YMUNhYWEKCwvzhmY15Zl9ZTabVV5eroKCAu+JWJ5AzhPu/Zwn2CstLVVBQYGcTqdKSkq8ARgAAEZHwAMAAIJm586dkuTdw+Vsffr00a9//Wv98pe/1O9//3tJFU9i8se8efO84U1ubq7+/ve/q3Xr1howYIBatmzpve98R59fiMlk0mWXXaaoqCiFhoaqoKBAx48f9+m0r7NDpwMHDvgc8EyZMkWPP/74OWGLJNlsNkn+H7v+c9HR0Ro6dKgWLlyoxo0bKzk5WcXFxUpLS9PAgQPVvXt3DRo0SMXFxRo9erQ+/fRTFRYW6tprrz1nRpXnfd58883ewKa4uFivvfaa7r333krH9gQ8oaGhGjRo0Dkh3J///Gc999xzGjt2bIWlaJI0fvx4vfzyy5owYYI3oAIA4GLi2zESAAAAtWD9+vWSpGuvvbbCNZPJpHfeeUdHjx5VcXGxrrnmGvXo0aPGY7Zs2VIdO3ZUx44d1bp1a3344Yf65z//qYiICO/zHTt2VNu2bf0eIyEhQSdPntSRI0eUlZWl6dOnS/LtOPf9+/d7v96+fbvPYxYWFspisahhw4bnPJ+TkyPp3IDHM4vFX88995xsNpuysrK0du1ahYaGymQyadq0aSorK1NsbKzMZnOFpWJ2u9378IQ1DodDJSUl3ofT6axyXM8snMo2uvZ3byUAAC4WBDwAACBoPCc3VXZEt0dpaamaNm3q8xHb1XH2hrs1CXR8daH9dOx2u/bt2+f981dffeVz7Y4dOyo0NFRms1mhoaHeU7I2bdokSRozZozCwsJkNptltVp15ZVX+vUeJCkxMdG759Gnn36qdevW6a677lKXLl0UGhqq1NRUbd26VR06dPC+JiMjQ9nZ2d6H59qmTZt09OhRHT9+XMXFxbr//vurHNezDKuyv8fzBUNnKy8v9/l9AgBgJCzRAgAAQfPuu+9q69atuuGGG6q858knn9TkyZPldDrldDplsVguWNdut6usrEwxMTHe5/Lz87Vv3z5FRkYqPDxcZrNZ+fn53uuFhYU6ePBghVqNGzdWVFRU9d5YFS60qfFXX30lu92uNm3a6ODBg9qwYYPKysp8Opo9NDRUsbGxCgsLU0hIiHfZk2dz4SZNmnj/Du12e42WoHmUl5dr4sSJMpvNFZY9VTYrq6Y8S7LO/nf9+bWXXnpJL730UpU1arJ5NgAA9RkBDwAACJq2bdv6NHMmLCxMU6ZM0fPPP6+QkBBvyOOZtZGamqrFixdLOvMB3u12KyUlRenp6d4aW7duVb9+/aoc4+zZJmf797//rbvuusvn91QTntOfhg4dqvXr12vjxo366KOPNHjw4Au+9sCBAxWeW716tfr3768mTZp4l2qdbe3atTXq95///Kd27dqle++9V507d65RLV94lpVddtllFa41aNCgyn/Ds1UWDgEAcDEg4AEAAIZgNpsVFRWlyMhI754vhYWFys/PV3h4uPdDv91uV0lJSYWZPiEhIWrcuLGio6O9ry8qKlJ2drZCQkLUpk2bc+4/cuSIiouLFR0dXSvvJy8vTydOnPAGXMXFxXr33XclSbfffrtiYmK0ceNGvf322z4FPJXx7OFTG+HLF198oT/96U8ym8168skndejQIWVmZiozM1Px8fEaOnSoz7XcbrfKyspkt9tlsViqnDGVl5cn6aeA59SpU3K73bJarXr66af17LPP1vyNAQBgUOzBAwAADGHGjBkqLCzUjz/+qJycHGVnZ3uXBQ0bNsy7t8vx48dVVFSkHTt2nPP6Pn366Mcff1RWVpb27Nmj77//Xs8//7ykM6d4ff/99+c8unbtKumn07QCuTmvw+HQ4MGDNW7cOO9z8+bN04kTJ5ScnKxevXpp+PDhkqRPPvlEhw8f9mucDz/8UJK8R4kHyvHjx9W/f3+VlpbKZDKpa9euatWqlW655Rb97ne/09GjRyu85rLLLpPJZPI+MjIyJEmtW7f27gsUFxenV155pcpxPSeCeY6g/93vfqeGDRt6Tys7u/75HnFxcZX2CACAkTGDBwAAXLI8Gxq3a9euwrXi4mJJZ5aHST9tzlvTTXpdLpdGjBihdevWKSwsTJmZmUpMTPTuG/Ob3/xGJpNJ7dq10/XXX68tW7Zo+vTpevPNN6s1zuHDh7Vx40ZJ0rp16/SLX/xCy5cv926OXBONGjVSixYtlJWVJafTqYiICHXq1EmJiYmKi4vTrbfeWuE1N9988zn7/mzatElFRUW68cYbZbVavTN4GjdufN73JJ0JhSQpKSlJ1157rSIjI5Wenq5Tp07pqquuqrSGw+Hwbur97LPPqmnTpjX6OwAAoL4h4AEAAJcszx40lW3y7Nm013PSlmcGTE1nwjz88MNatmyZQkJCtHjxYrVt21ZTpkzRgQMHFBcXp4cffth77x/+8Adt2bJF77zzjiZNmqT27dv7PM7f//53ud1utWzZUlFRUdq4caO6deum1atX+7RXzYXMmDFDxcXF6tatmzp16iSz+fwTw1esWKEGDRp4/9y5c2dlZGRo0aJFatWqlU9jeo6Q9wQ8f/vb37zXFixYoF//+teKjIzUJ598UmFj6ocfflhff/21br31Vj3yyCM+jQcAgJGwRAsAAFySdu7c6Z3RMWDAgArXPTN4PPvBFBUVSTpz2pa/Nm3apH/9618ym81KTU3VkCFDtH37du/snT/+8Y/nhCD33XefWrRo4T2tylc2m80742fSpElav369evToocOHD+sXv/iFsrKyKtxf2VKmgQMHSqp8edo999yjUaNGqXPnzpWGO4E+jjwrK0snT57UZZddVunsmwceeEADBgzQpk2b9Pjjj59zbe7cuZo9e7Yuv/xyLViw4IKnmQEAYEQEPAAA4JLjdDq9M2V69uxZ6YyWn8/gmTFjhtxut/ekq+rwHFXudDplMpn09ttv695779Xx48c1fPhwlZeXKyUlRZMnTz7ndWFhYd6Ng1etWqU5c+b4NN6UKVNUVFSk5ORkjR49Wg0bNtTatWvVq1cv5ebmasCAATp16pR3NpLFYlGHDh0qPBITEyWdf9bSsWPHtHXrVi1atEhPPvmkhgwZorZt22rEiBHV/ns6ny+++EKS1K1btyoDmnfeeUdJSUl67bXXNH78eLndbr3//vsaO3asoqOjtWrVKiUkJAS0LwAA6guWaAEAgHojkBsZn2+MRx55RF9//bVMJpNmzJhR6X2eGTuegKeqWhficDg0f/5875+fe+45Pfjgg7Lb7Ro0aJAyMzMVERGhhQsXevf7OdvIkSO1cOFCrV69Wo888oiSkpIqnXHk8cUXX3jHe/311xUeHu59HytWrNC1116rPXv2aPbs2erUqZOkM3vqfP/99xVqrVq1SgMHDpTD4Tjn+XvvvVebN29Wbm5uhWuSFB0drZSUFEk//R1df/3158z08Rzr3rdvX4WGhsrpdMrhcKi0tFQOh0OffPKJunfv7r3/3//+tySd96j7xo0ba9WqVfrFL36hl19+WVu2bNHmzZsVERGhlStX6pprrqnytQAAGB0zeAAAQL1R2T43+fn5OnHihIqKinxe9uNwOJSfny+bzSan0+l9vqSkRA8++KD+9a9/SZL+/Oc/66abbqrw+m+//da7FOt8x6Tv2bNHks7ZPPjnrFar7r//fknSmDFj9MQTT6iwsFBDhw71boI8Z84cdenSpcoaqampat68ucrLyzVkyBClpqZWet+PP/6oESNGyO12a+zYsRU2O46Pj9fcuXP1l7/8RX/+858rDWcq8/MZPE2aNNHBgwe9r2/RooVGjRqlN998UxkZGcrPz9dTTz0lSd6//6KiIhUWFnofjRs3VvPmzeVwOFRYWKiCgoJzHmf/ux06dEirV6+WJN15553n7bVFixa67777JElpaWlyuVwaNGiQOnbs6NN7BQDAqJjBAwAA6o3KAp4nnnjigkuT5s+ff84smbMdOHBArVq1Ulpamh566CHv8dy/+c1vNH36dO99Gzdu1NSpU5WXl+e9p2PHjrJarefUe/fdd7Vz50798MMP+uCDDyTpgst+pk2bpnbt2umee+7RoUOHdOedd2rnzp2SpCeffFIjR4487+ubNGmiVatWqU+fPsrPz9cDDzygr776Sq+//rp31k9eXp769++v3NxcXXXVVfrHP/5Raa2+ffuqb9++ks7sk2OxWKoMqNq0aaOJEydWuD5o0CB99NFHGjVqlIYOHXre8MQT1GRkZJyzv1B1zJo1Sy6XS926dauw0bTb7da+ffv05Zdfas2aNfr444+9y+vat2+vvXv36t1339V7772nlJQU3XDDDercubOSk5PVqlUrxcfHKyoqSrGxsRfcKBoAgPqMgAcAANQblQU8CQkJSklJkdVqVXh4eIXTkSpjt9u9D8/yn2eeecYb3IwfP16zZs06Zy+Xrl276n//+5/y8vIknVnu89prr1Va//nnnz/nz/fee+8Fe/KEODt37tTJkyclnTnZ6eyQ6Xy6dOmijz/+WAMGDFCTJk300EMPnbOk68CBAyoqKlKTJk20YsUK79Ks87n//vu9s4sqc8UVV+jFF1+s8Pwvf/lLZWZm+rRZsa+zhKpSWlqqNWvWSJLGjh0rSXrllVf0xRdfKCcnR7t27fIup5POnLA1fPhwjR49Wu3atdOePXs0f/58/ec//1F6errS09MrjNGpUyd98803ioiIqFGvAAAEk8ldF4vdAQAAfNC8eXP98MMPSk1NDfgmvSUlJerVq5d+97vf6aGHHqr0nunTp+vYsWPq16+f+vfvX+meOMXFxUpOTlbHjh3Vs2dPDRkyRNddd121ejl+/LhSU1MrnPbkix07digqKkpt27atcC0vL0+HDh0673KvuhYaGqry8nLl5eX5PYPH7XZr0aJFuvvuuxUREaGcnBx17NhRhYWFatq0qa6//nr16tVLt956q66++uoq62RnZ2vjxo3avHmztm/frl27dslms2np0qUaNmyYn+8QAID6gYAHAABcMpxOpywWS7DbQADs2bNH8fHxatSoUY3q5OXlKTY2lu8LAIDhEfAAAAAAAAAYHDvJAQAAAAAAGBwBDwAAAAAAgMER8AAAAAAAABgcAQ8AAAAAAIDBEfAAAAAAAAAYHAEPAAAAAACAwRHwAAAAAAAAGBwBDwAAAAAAgMER8AAAAAAAABgcAQ8AAAAAAIDBEfAAAAAAAAAYHAEPAAAAAACAwRHwAAAAAAAAGBwBDwAAAAAAgMER8AAAAAAAABgcAQ8AAAAAAIDBEfAAAAAAAAAYHAEPAAAAAACAwf1/4TbWph5hNYAAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1280x960 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mytools.gen_scatter(df,'性别认知维度','感知评价维度')"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "output.png"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'积矩相关系数r为：0.248，决定系数r平方为：0.061，相关强度为低度相关。'"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r, p = stats.pearsonr(df['感知评价维度'], df['性别认知维度'])\n",
    "f\"积矩相关系数r为：{r:.3f}，决定系数r平方为：{r*r:.3f}，相关强度为{mytools.draw_on_r(r*r)}。\""
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "两个变量的积矩相系数r=0.2489,接受原假设，研究假设不成立，即两者不存在相关性。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "e593ac106456af50ce7af38f9671c411b49d6cd90f9b885e167f0f594e09038c"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
